public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: ebiederm@xmission•com (Eric W. Biederman)
To: Francois Romieu <romieu@fr•zoreil.com>
Cc: David Dillow <dave@thedillows•org>,
	Michael Riepe <michael.riepe@googlemail•com>,
	Michael Buesch <mb@bu3sch•de>, Rui Santos <rsantos@grupopie•com>,
	Michael B??ker <m.bueker@berlin•de>,
	linux-kernel@vger•kernel.org, netdev@vger•kernel.org
Subject: Re: [PATCH 2.6.30-rc4] r8169: avoid losing MSI interrupts
Date: Tue, 25 Aug 2009 20:47:01 -0700	[thread overview]
Message-ID: <m1prajme2y.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <20090825221903.GA13630@electric-eye.fr.zoreil.com> (Francois Romieu's message of "Wed\, 26 Aug 2009 00\:19\:03 +0200")

Francois Romieu <romieu@fr•zoreil.com> writes:

> Eric W. Biederman <ebiederm@xmission•com> :
> [...]
>> I am a bit curious about TxDescUnavail.  Perhaps we had a temporary
>> memory shortage and that is what was screaming?  I don't think we do
>> anything at all with that state.
>
> You are not alone, the driver completely ignores this bit.
>
> As far as I remember, the TxDescUnavail event mostly pops up when the
> driver makes an excessive use of TxPoll requests.
>
>> Perhaps the flaw here is simply not masking TxDescUnavail while we are
>> in NAPI mode ?
>
> Yes, it is worth trying.

At first blush things seem better, but it isn't sufficient.
I still have a problem with RxFIFOOver set.
r8169 screaming irq status 00000040 mask 0000ffe2 event 0000803f napi 0000001d

The patch I ran is below.

Eric

---
 drivers/net/r8169.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 3b19e0c..e144bc1 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -3552,6 +3552,7 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 	void __iomem *ioaddr = tp->mmio_addr;
 	int handled = 0;
 	int status;
+	int count = 0;
 
 	/* loop handling interrupts until we have no new ones or
 	 * we hit a invalid/hotplug case.
@@ -3560,6 +3561,14 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 	while (status && status != 0xffff) {
 		handled = 1;
 
+		if (count++ > 100) {                                                                                               
+			printk_once("r8169 screaming irq status %08x "
+				"mask %08x event %08x napi %08x\n",
+				status, tp->intr_mask, tp->intr_event,
+				tp->napi_event);
+			break;
+		}
+
 		/* Handle all of the error cases first. These will reset
 		 * the chip, so just exit the loop.
 		 */
@@ -3609,6 +3618,9 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 		RTL_W16(IntrStatus,
 			(status & RxFIFOOver) ? (status | RxOverflow) : status);
 		status = RTL_R16(IntrStatus);
+		if (status == 0xffff)
+			break;
+		status &= tp->intr_mask;
 	}
 
 	return IRQ_RETVAL(handled);
-- 
1.6.2.5


  reply	other threads:[~2009-08-26  3:47 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200903041828.49972.m.bueker@berlin.de>
     [not found] ` <20090322211159.GA23042@electric-eye.fr.zoreil.com>
     [not found]   ` <49CA1822.6050902@grupopie.com>
     [not found]     ` <200904041950.04324.mb@bu3sch.de>
     [not found]       ` <4A06D8D2.4010505@googlemail.com>
2009-05-11  0:29         ` 2.6.27.19 + 28.7: network timeouts for r8169 and 8139too David Dillow
2009-05-11 20:48           ` Michael Buesch
2009-05-11 21:10             ` Michael Buesch
2009-05-11 21:29               ` David Dillow
2009-05-11 21:59                 ` Michael Buesch
2009-05-12 20:29                 ` Michael Riepe
2009-05-14  2:38                   ` David Dillow
2009-05-14 18:37                     ` Michael Riepe
2009-05-14 19:14                       ` David Dillow
2009-05-14 19:42                         ` Michael Riepe
2009-05-23  1:29                           ` [PATCH 2.6.30-rc4] r8169: avoid losing MSI interrupts David Dillow
2009-05-23  9:24                             ` Michael Buesch
2009-05-23 14:35                               ` Michael Riepe
2009-05-23 14:44                                 ` Michael Buesch
2009-05-23 15:01                                   ` Michael Riepe
2009-05-23 16:40                                     ` Michael Buesch
2009-05-23 14:51                                 ` David Dillow
2009-05-23 16:12                                   ` Michael Riepe
2009-05-23 16:45                                     ` Michael Buesch
2009-05-23 16:46                                     ` David Dillow
2009-05-23 16:50                                       ` Michael Buesch
2009-05-23 16:53                                       ` Michael Riepe
2009-05-23 17:03                                         ` David Dillow
2009-05-24 21:15                             ` Francois Romieu
2009-05-24 22:55                               ` David Dillow
2009-05-26  5:55                             ` David Miller
2009-05-26 18:22                               ` Michael Buesch
2009-05-26 21:52                                 ` David Miller
2009-05-26 22:14                                   ` David Miller
2009-05-26 22:40                                     ` Michael Riepe
2009-05-26 22:43                                       ` David Miller
2009-05-26 23:10                                         ` David Miller
2009-05-27 16:19                                     ` Michael Buesch
2009-06-16 19:32                                     ` Rui Santos
2009-08-21 20:57                             ` Eric W. Biederman
2009-08-21 21:22                               ` Michael Riepe
2009-08-21 22:59                               ` David Dillow
2009-08-21 23:34                                 ` David Dillow
2009-08-22  0:24                                   ` Eric W. Biederman
2009-08-22 11:48                                   ` Eric W. Biederman
2009-08-22 12:07                                     ` Eric W. Biederman
2009-08-22 20:43                                       ` David Dillow
2009-08-23 17:17                                         ` Jarek Poplawski
2009-08-23 17:43                                           ` Michal Soltys
2009-08-23 17:54                                             ` Jarek Poplawski
2009-08-24  2:37                                         ` Eric W. Biederman
2009-08-25  0:51                                         ` Eric W. Biederman
2009-08-25  2:59                                           ` David Dillow
2009-08-25 20:22                                             ` Eric W. Biederman
2009-08-25 20:40                                               ` David Dillow
2009-08-25 21:24                                                 ` Eric W. Biederman
2009-08-25 21:46                                                   ` David Dillow
2009-08-25 22:19                                                   ` Francois Romieu
2009-08-26  3:47                                                     ` Eric W. Biederman [this message]
2009-08-26  7:58                                                     ` [PATCH] r8169: Reduce looping in the interrupt handler Eric W. Biederman
2009-08-26 13:56                                                       ` David Dillow
2009-08-26 13:59                                                         ` David Dillow
2009-08-26 20:02                                                           ` Eric W. Biederman
2009-08-26 21:30                                                             ` Francois Romieu
2009-08-26 21:40                                                               ` Eric W. Biederman
2009-08-27  5:24                                                                 ` Francois Romieu
2009-08-27  5:38                                                                   ` Eric W. Biederman
2009-08-27 23:20                                                                     ` Francois Romieu
2009-08-28  1:17                                                                       ` Eric W. Biederman
2009-08-28  1:29                                                                         ` David Dillow
2009-08-30 20:37                                                                           ` Francois Romieu
2009-08-30 20:53                                                                             ` Eric W. Biederman
2009-09-01  3:33                                                                               ` David Dillow
2009-09-01  9:20                                                                                 ` Francois Romieu
2009-08-25 21:37                                             ` [PATCH 2.6.30-rc4] r8169: avoid losing MSI interrupts Eric W. Biederman
2009-08-25 21:54                                               ` David Dillow
2009-08-25 23:11                                                 ` Francois Romieu
2009-05-12 11:10             ` 2.6.27.19 + 28.7: network timeouts for r8169 and 8139too Krzysztof Halasa
2009-05-12 21:45               ` Michael Riepe
2009-05-13  6:11                 ` Francois Romieu
2009-05-13  6:27                   ` Michael Riepe
2009-05-13 19:34                 ` Krzysztof Halasa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m1prajme2y.fsf@fess.ebiederm.org \
    --to=ebiederm@xmission$(echo .)com \
    --cc=dave@thedillows$(echo .)org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=m.bueker@berlin$(echo .)de \
    --cc=mb@bu3sch$(echo .)de \
    --cc=michael.riepe@googlemail$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=romieu@fr$(echo .)zoreil.com \
    --cc=rsantos@grupopie$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox