From: Francois Romieu <romieu@fr.zoreil.com>
To: Pasi Sjoholm <ptsjohol@cc.jyu.fi>
Cc: Robert Olsson <Robert.Olsson@data.slu.se>,
H?ctor Mart?n <hector@marcansoft.com>,
Linux-Kernel <linux-kernel@vger.kernel.org>,
akpm@osdl.org, netdev@oss.sgi.com, brad@brad-x.com,
shemminger@osdl.org
Subject: Re: ksoftirqd uses 99% CPU triggered by network traffic (maybe RLT-8139 related)
Date: Sat, 31 Jul 2004 14:33:30 +0200 [thread overview]
Message-ID: <20040731143330.A25736@electric-eye.fr.zoreil.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0407302116010.23238-101000@silmu.st.jyu.fi>; from ptsjohol@cc.jyu.fi on Fri, Jul 30, 2004 at 09:40:28PM +0300
[-- Attachment #1: Type: text/plain, Size: 676 bytes --]
Pasi Sjoholm <ptsjohol@cc.jyu.fi> :
[interesting report]
> The hardest part is to tell where the problem is but I think that
> rtl8139_poll-function would be good place to start looking for the bug?
>
> readprofile didn't tell much.. Where to go next? I'm not so good
> programmer that I could find the right place to fix..
In case it could make a difference: did you check if CONFIG_8139_OLD_RX_RESET
changes the behavior or not ?
If it does not, I'd welcome a test report + log with the two attached patch
applied. The first one is just a placebo but the second one could help.
Btw, you are probably right that the issue is not related to ksoftirqd at all.
--
Ueimor
[-- Attachment #2: r8139-10.patch --]
[-- Type: text/plain, Size: 1605 bytes --]
drivers/net/8139too.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff -puN drivers/net/8139too.c~r8139-10 drivers/net/8139too.c
--- linux-2.6.8-rc2/drivers/net/8139too.c~r8139-10 2004-07-31 12:43:44.000000000 +0200
+++ linux-2.6.8-rc2-romieu/drivers/net/8139too.c 2004-07-31 12:43:44.000000000 +0200
@@ -1934,6 +1934,7 @@ static int rtl8139_rx(struct net_device
int received = 0;
unsigned char *rx_ring = tp->rx_ring;
unsigned int cur_rx = tp->cur_rx;
+ u16 status;
DPRINTK ("%s: In rtl8139_rx(), current %4.4x BufAddr %4.4x,"
" free to %4.4x, Cmd %2.2x.\n", dev->name, cur_rx,
@@ -1947,7 +1948,6 @@ static int rtl8139_rx(struct net_device
unsigned int rx_size;
unsigned int pkt_size;
struct sk_buff *skb;
- u16 status;
rmb();
@@ -2024,17 +2024,17 @@ static int rtl8139_rx(struct net_device
cur_rx = (cur_rx + rx_size + 4 + 3) & ~3;
RTL_W16 (RxBufPtr, (u16) (cur_rx - 16));
+ }
- /* Clear out errors and receive interrupts */
- status = RTL_R16 (IntrStatus) & RxAckBits;
- if (likely(status != 0)) {
- if (unlikely(status & (RxFIFOOver | RxOverflow))) {
- tp->stats.rx_errors++;
- if (status & RxFIFOOver)
- tp->stats.rx_fifo_errors++;
- }
- RTL_W16_F (IntrStatus, RxAckBits);
+ /* Clear out errors and receive interrupts */
+ status = RTL_R16 (IntrStatus) & RxAckBits;
+ if (likely(status != 0)) {
+ if (unlikely(status & (RxFIFOOver | RxOverflow))) {
+ tp->stats.rx_errors++;
+ if (status & RxFIFOOver)
+ tp->stats.rx_fifo_errors++;
}
+ RTL_W16_F (IntrStatus, RxAckBits);
}
done:
_
[-- Attachment #3: r8139-20.patch --]
[-- Type: text/plain, Size: 1312 bytes --]
drivers/net/8139too.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletion(-)
diff -puN drivers/net/8139too.c~r8139-20 drivers/net/8139too.c
--- linux-2.6.8-rc2/drivers/net/8139too.c~r8139-20 2004-07-31 12:44:12.000000000 +0200
+++ linux-2.6.8-rc2-romieu/drivers/net/8139too.c 2004-07-31 14:20:36.000000000 +0200
@@ -593,6 +593,7 @@ struct rtl8139_private {
int time_to_die;
struct mii_if_info mii;
unsigned int regs_len;
+ unsigned long fifo_copy_timeout;
};
MODULE_AUTHOR ("Jeff Garzik <jgarzik@pobox.com>");
@@ -1937,7 +1938,7 @@ static int rtl8139_rx(struct net_device
u16 status;
DPRINTK ("%s: In rtl8139_rx(), current %4.4x BufAddr %4.4x,"
- " free to %4.4x, Cmd %2.2x.\n", dev->name, cur_rx,
+ " free to %4.4x, Cmd %2.2x.\n", dev->name, (u16)cur_rx,
RTL_R16 (RxBufAddr),
RTL_R16 (RxBufPtr), RTL_R8 (ChipCmd));
@@ -1977,6 +1978,14 @@ static int rtl8139_rx(struct net_device
*/
if (unlikely(rx_size == 0xfff0)) {
tp->xstats.early_rx++;
+ if (!tp->fifo_copy_timeout)
+ tp->fifo_copy_timeout = jiffies + 2;
+ else if (time_after(jiffies, tp->fifo_copy_timeout)) {
+ DPRINTK ("%s: hung FIFO. Reset.", dev->name);
+ tp->fifo_copy_timeout = 0;
+ rtl8139_rx_err (rx_status, dev, tp, ioaddr);
+ return -1;
+ }
goto done;
}
_
next prev parent reply other threads:[~2004-07-31 12:38 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-24 21:05 ksoftirqd uses 99% CPU triggered by network traffic Héctor Martín
2004-07-24 23:27 ` Francois Romieu
2004-07-25 6:32 ` Héctor Martín
2004-07-25 20:27 ` ksoftirqd uses 99% CPU triggered by network traffic (maybe RLT-8139 related) Pasi Sjoholm
2004-07-25 21:59 ` Francois Romieu
2004-07-26 15:15 ` Pasi Sjoholm
2004-07-26 16:37 ` Robert Olsson
2004-07-26 21:46 ` Pasi Sjoholm
2004-07-26 22:38 ` Robert Olsson
2004-07-27 0:16 ` Pasi Sjoholm
2004-07-27 11:10 ` Robert Olsson
2004-07-27 14:20 ` Pasi Sjoholm
2004-07-27 20:24 ` Robert Olsson
2004-07-27 21:27 ` Pasi Sjoholm
2004-07-28 18:35 ` Robert Olsson
2004-07-28 19:09 ` James Morris
2004-07-29 0:46 ` Pasi Sjoholm
2004-07-30 9:18 ` Robert Olsson
2004-07-30 12:56 ` Pasi Sjoholm
2004-07-30 14:05 ` Robert Olsson
2004-07-30 18:40 ` Pasi Sjoholm
2004-07-31 12:33 ` Francois Romieu [this message]
2004-08-02 9:57 ` Pasi Sjoholm
2004-08-02 10:03 ` Pasi Sjoholm
2004-08-02 22:35 ` Francois Romieu
2004-08-03 12:32 ` Pasi Sjoholm
2004-08-03 16:50 ` Francois Romieu
2004-08-03 20:19 ` Pasi Sjoholm
2004-08-04 16:26 ` Pasi Sjoholm
2004-08-05 10:14 ` Hector Martin
2004-08-05 10:55 ` Hector Martin
2004-08-05 11:22 ` Francois Romieu
2004-08-05 15:28 ` OGAWA Hirofumi
2004-08-05 17:21 ` Francois Romieu
2004-07-30 14:12 ` Robert Olsson
2004-07-26 16:55 ` Stephen Hemminger
2004-07-26 21:28 ` Pasi Sjoholm
[not found] <41041DED.2010609@cox.net>
2004-07-25 21:18 ` Pasi Sjoholm
[not found] <4104257C.3080102@cox.net>
2004-07-25 21:42 ` Pasi Sjoholm
2004-07-25 22:31 ` Andrew Morton
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=20040731143330.A25736@electric-eye.fr.zoreil.com \
--to=romieu@fr.zoreil.com \
--cc=Robert.Olsson@data.slu.se \
--cc=akpm@osdl.org \
--cc=brad@brad-x.com \
--cc=hector@marcansoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
--cc=ptsjohol@cc.jyu.fi \
--cc=shemminger@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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
all inboxes | Powered by JetHome®