* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
[not found] ` <20040814121533.GB18754@electric-eye.fr.zoreil.com>
@ 2004-08-14 13:56 ` Jurriaan
2004-08-14 15:08 ` Francois Romieu
0 siblings, 1 reply; 10+ messages in thread
From: Jurriaan @ 2004-08-14 13:56 UTC (permalink / raw)
To: Francois Romieu; +Cc: netdev
From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sat, Aug 14, 2004 at 02:15:33PM +0200
> > What could be the problem here?
>
> The transition from 2.6.8-rc3-mm1 to 2.6.8-rc4-mm1 changes both the
> point outlined above and the 8139too driver.
>
> You may:
> 1 - try the "pci=routeirq" argument at startup on your 2.6.8-rc4-mm1 if you
> have not done so;
that didn't help
> 2 - apply to your 2.6.8-rc4-mm1 tree:
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-mm-revert.patch
I don't get it.
INTEL :patch -p1 -R --dry-run < ../268rc4mm1_8139too-mm-revert.patch
patching file drivers/net/8139too.c
Hunk #1 FAILED at 593.
Hunk #2 FAILED at 1935.
Hunk #3 FAILED at 1951.
Hunk #4 FAILED at 1979.
Hunk #5 FAILED at 2006.
Hunk #6 FAILED at 2042.
Hunk #7 FAILED at 2062.
7 out of 7 hunks FAILED -- saving rejects to file drivers/net/8139too.c.rej
INTEL :patch -p1 --dry-run < ../268rc4mm1_8139too-mm-revert.patch
patching file drivers/net/8139too.c
Hunk #1 FAILED at 593.
Hunk #2 FAILED at 1934.
Hunk #3 FAILED at 1947.
Hunk #4 FAILED at 1976.
Hunk #5 FAILED at 1989.
Hunk #6 FAILED at 2024.
Hunk #7 FAILED at 2047.
7 out of 7 hunks FAILED -- saving rejects to file drivers/net/8139too.c.rej
This patch fails both with and without -R - how am I supposed to apply
it?
> 3 - apply to your 2.6.8-rc4-mm1 tree:
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-mm-revert.patch
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-10.patch
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-20.patch
>
I can get the -20 patch to apply with -R (with offsets), but after that
-10 with -R fails.
Since it's the network card, here's some extra info:
0000:02:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Unex Technology Corp. ND010
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (8000ns min, 16000ns max)
Interrupt: pin A routed to IRQ 23
Region 0: I/O ports at a800
Region 1: Memory at f3051000 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Thanks,
Jurriaan [ please cc me: I'm not on netdev ]
--
No, no my lord. What I mean is we could get a mad wild killer bull
and disguise it as a bird.
Baldrik in Blackadder II
Debian (Unstable) GNU/Linux 2.6.8-rc4-mm1 2x6078 bogomips load 0.31
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-14 13:56 ` strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1 Jurriaan
@ 2004-08-14 15:08 ` Francois Romieu
2004-08-14 16:10 ` Jurriaan
0 siblings, 1 reply; 10+ messages in thread
From: Francois Romieu @ 2004-08-14 15:08 UTC (permalink / raw)
To: Jurriaan; +Cc: netdev
Jurriaan <thunder7@xs4all.nl> :
[...]
> > 1 - try the "pci=routeirq" argument at startup on your 2.6.8-rc4-mm1 if you
> > have not done so;
>
> that didn't help
Ok. Bad day.
[...]
> > 2 - apply to your 2.6.8-rc4-mm1 tree:
> > http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-mm-revert.patch
>
> I don't get it.
[...]
> This patch fails both with and without -R - how am I supposed to apply
> it?
Without -R.
[linux-2.6.8-rc4-mm1]$ patch -p1 --dry-run < /tmp/8139too-mm-revert.patch
patching file drivers/net/8139too.c
[linux-2.6.8-rc4-mm1]$ md5sum drivers/net/8139too.c
70b78e69d4c2387b63aaee943e67a244 drivers/net/8139too.c
Can you check the md5sum of the 8139too.c file in your 2.6.8-rc4-mm1 tree ?
--
Ueimor
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-14 15:08 ` Francois Romieu
@ 2004-08-14 16:10 ` Jurriaan
2004-08-14 17:28 ` Francois Romieu
0 siblings, 1 reply; 10+ messages in thread
From: Jurriaan @ 2004-08-14 16:10 UTC (permalink / raw)
To: Francois Romieu; +Cc: netdev
From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sat, Aug 14, 2004 at 05:08:24PM +0200
> Jurriaan <thunder7@xs4all.nl> :
> [...]
> > > 1 - try the "pci=routeirq" argument at startup on your 2.6.8-rc4-mm1 if you
> > > have not done so;
> >
> > that didn't help
>
> Ok. Bad day.
>
> [...]
> > > 2 - apply to your 2.6.8-rc4-mm1 tree:
> > > http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-mm-revert.patch
> >
> > I don't get it.
> [...]
> > This patch fails both with and without -R - how am I supposed to apply
> > it?
>
Never mind, it seems my patch was saved incorrectly. Anyway, after
applying this patch my network-traffic is as fast as it ever was.
There's no difference in dmesg-output, but I reach 450-460 KiB/s again.
If there's anything else I can test, please let me know - I gather the
update did work for other people, so if testers are wanted I'm
available.
Kind regards,
Jurriaan
--
'Tempers grow short,' Kruppe murmured as the commander rode away. 'But not
as short as Kruppe, for whom all nasty words whiz impactless over his head,
and are thus lost in the ether. And those darts aimed lower, ah, they but
bounce from Kruppe's ample equanimity--'
Steven Erikson - Memories of Ice
Debian (Unstable) GNU/Linux 2.6.8-rc4-mm1 2x6078 bogomips load 0.20
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-14 16:10 ` Jurriaan
@ 2004-08-14 17:28 ` Francois Romieu
2004-08-14 19:01 ` Jurriaan
0 siblings, 1 reply; 10+ messages in thread
From: Francois Romieu @ 2004-08-14 17:28 UTC (permalink / raw)
To: Jurriaan; +Cc: netdev
Jurriaan <thunder7@xs4all.nl> :
[...]
> Never mind, it seems my patch was saved incorrectly. Anyway, after
> applying this patch my network-traffic is as fast as it ever was.
>
> There's no difference in dmesg-output, but I reach 450-460 KiB/s again.
Ok. So Jeff was right (TM).
> If there's anything else I can test, please let me know - I gather the
> update did work for other people, so if testers are wanted I'm
> available.
Can you apply 8139too-10.patch + 8139too-20.patch on top of your working
config (namely 2.6.8-rc4-mm1 + 8139too-mm-revert.patch) and tell if things
go wrong ?
--
Ueimor
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-14 17:28 ` Francois Romieu
@ 2004-08-14 19:01 ` Jurriaan
2004-08-14 19:27 ` Francois Romieu
0 siblings, 1 reply; 10+ messages in thread
From: Jurriaan @ 2004-08-14 19:01 UTC (permalink / raw)
To: Francois Romieu; +Cc: netdev
From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sat, Aug 14, 2004 at 07:28:35PM +0200
> Jurriaan <thunder7@xs4all.nl> :
> [...]
> > Never mind, it seems my patch was saved incorrectly. Anyway, after
> > applying this patch my network-traffic is as fast as it ever was.
> >
> > There's no difference in dmesg-output, but I reach 450-460 KiB/s again.
>
> Ok. So Jeff was right (TM).
>
> > If there's anything else I can test, please let me know - I gather the
> > update did work for other people, so if testers are wanted I'm
> > available.
>
> Can you apply 8139too-10.patch + 8139too-20.patch on top of your working
> config (namely 2.6.8-rc4-mm1 + 8139too-mm-revert.patch) and tell if things
> go wrong ?
>
Indeed they do. Both with -10 and with -10+-20 added on my working
2.6.8-rc4-mm1 the booting process hangs somewhere while iptables is
installing my ipv6 firewall. This is reproducable, I've not tried to
install my firewall by hand after booting (call me paranoid).
Thus:
2.6.8-rc4-mm1: boots, slow network
2.6.8-rc4-mm1 + 8139too-mm-revert: boots, fast network
2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10: doesn't boot
2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10 + 8139too-20: doesn't boot
Good luck,
Jurriaan
--
Linux hackers are funny people: They count the time in patchlevels.
Gerd Knorr
Debian (Unstable) GNU/Linux 2.6.8-rc4-mm1 2x6078 bogomips load 0.01
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-14 19:01 ` Jurriaan
@ 2004-08-14 19:27 ` Francois Romieu
2004-08-15 5:54 ` Jurriaan
0 siblings, 1 reply; 10+ messages in thread
From: Francois Romieu @ 2004-08-14 19:27 UTC (permalink / raw)
To: Jurriaan; +Cc: netdev
[-- Attachment #1: Type: text/plain, Size: 921 bytes --]
Jurriaan <thunder7@xs4all.nl> :
[...]
> Indeed they do. Both with -10 and with -10+-20 added on my working
> 2.6.8-rc4-mm1 the booting process hangs somewhere while iptables is
> installing my ipv6 firewall. This is reproducable, I've not tried to
> install my firewall by hand after booting (call me paranoid).
>
> Thus:
>
> 2.6.8-rc4-mm1: boots, slow network
> 2.6.8-rc4-mm1 + 8139too-mm-revert: boots, fast network
> 2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10: doesn't boot
> 2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10 + 8139too-20: doesn't boot
Thanks. Erm... not exactly what I had expected.
Could you return to 2.6.8-rc4-mm1 + 8139too-mm-revert.patch and try each
of the three patches attached ?
I.e.:
- apply patch #1
- boot test (success/crash)
- revert patch #1
- apply patch #2
- boot test (success/crash)
- revert patch #2
- apply patch #3
- boot test (success/crash)
- revert patch #3
--
Ueimor
[-- Attachment #2: 8139-a.patch --]
[-- Type: text/plain, Size: 3323 bytes --]
This patch allows to update the interrupt status register after an
Rx overflow or a Rx fifo error even when the Rx buffer contains no packet.
The update must be kept in the packet processing loop to prevent an Rx
error storm.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
drivers/net/8139too.c | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff -puN drivers/net/8139too.c~8139too-10 drivers/net/8139too.c
--- linux-2.6.8-rc4/drivers/net/8139too.c~8139too-10 2004-08-12 21:37:18.000000000 +0200
+++ linux-2.6.8-rc4-fr/drivers/net/8139too.c 2004-08-12 22:10:21.000000000 +0200
@@ -1927,6 +1927,23 @@ static __inline__ void wrap_copy(struct
}
#endif
+static void rtl8139_isr_ack(struct rtl8139_private *tp, u16 status)
+{
+ void *ioaddr = tp->mmio_addr;
+
+ status = RTL_R16 (IntrStatus) & RxAckBits;
+
+ /* Clear out errors and receive interrupts */
+ 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);
+ }
+}
+
static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp,
int budget)
{
@@ -1934,20 +1951,22 @@ static int rtl8139_rx(struct net_device
int received = 0;
unsigned char *rx_ring = tp->rx_ring;
unsigned int cur_rx = tp->cur_rx;
+ unsigned int rx_size = 0;
+ u16 status = 0;
DPRINTK ("%s: In rtl8139_rx(), current %4.4x BufAddr %4.4x,"
" free to %4.4x, Cmd %2.2x.\n", dev->name, cur_rx,
RTL_R16 (RxBufAddr),
RTL_R16 (RxBufPtr), RTL_R8 (ChipCmd));
+ // status = RTL_R16 (IntrStatus);
+
while (netif_running(dev) && received < budget
&& (RTL_R8 (ChipCmd) & RxBufEmpty) == 0) {
u32 ring_offset = cur_rx % RX_BUF_LEN;
u32 rx_status;
- unsigned int rx_size;
unsigned int pkt_size;
struct sk_buff *skb;
- u16 status;
rmb();
@@ -1977,7 +1996,7 @@ static int rtl8139_rx(struct net_device
*/
if (unlikely(rx_size == 0xfff0)) {
tp->xstats.early_rx++;
- goto done;
+ break;
}
/* If Rx err or invalid rx_size/rx_status received
@@ -1989,7 +2008,8 @@ static int rtl8139_rx(struct net_device
(rx_size < 8) ||
(!(rx_status & RxStatusOK)))) {
rtl8139_rx_err (rx_status, dev, tp, ioaddr);
- return -1;
+ received = -1;
+ goto out;
}
/* Malloc up new buffer, compatible with net-2e. */
@@ -2025,19 +2045,13 @@ 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);
- }
+ rtl8139_isr_ack(tp, status);
+
+ status = RTL_R16 (IntrStatus);
}
- done:
+ if (unlikely(!received || rx_size == 0xfff0))
+ rtl8139_isr_ack(tp, status);
#if RTL8139_DEBUG > 1
DPRINTK ("%s: Done rtl8139_rx(), current %4.4x BufAddr %4.4x,"
@@ -2047,6 +2061,7 @@ static int rtl8139_rx(struct net_device
#endif
tp->cur_rx = cur_rx;
+out:
return received;
}
_
[-- Attachment #3: 8139-b.patch --]
[-- Type: text/plain, Size: 3255 bytes --]
This patch allows to update the interrupt status register after an
Rx overflow or a Rx fifo error even when the Rx buffer contains no packet.
The update must be kept in the packet processing loop to prevent an Rx
error storm.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
drivers/net/8139too.c | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff -puN drivers/net/8139too.c~8139too-10 drivers/net/8139too.c
--- linux-2.6.8-rc4/drivers/net/8139too.c~8139too-10 2004-08-12 21:37:18.000000000 +0200
+++ linux-2.6.8-rc4-fr/drivers/net/8139too.c 2004-08-12 22:10:21.000000000 +0200
@@ -1927,6 +1927,23 @@ static __inline__ void wrap_copy(struct
}
#endif
+static void rtl8139_isr_ack(struct rtl8139_private *tp, u16 status)
+{
+ void *ioaddr = tp->mmio_addr;
+
+ status &= RxAckBits;
+
+ /* Clear out errors and receive interrupts */
+ 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);
+ }
+}
+
static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp,
int budget)
{
@@ -1934,20 +1951,22 @@ static int rtl8139_rx(struct net_device
int received = 0;
unsigned char *rx_ring = tp->rx_ring;
unsigned int cur_rx = tp->cur_rx;
+ unsigned int rx_size = 0;
+ 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,
RTL_R16 (RxBufAddr),
RTL_R16 (RxBufPtr), RTL_R8 (ChipCmd));
+ status = RTL_R16 (IntrStatus);
+
while (netif_running(dev) && received < budget
&& (RTL_R8 (ChipCmd) & RxBufEmpty) == 0) {
u32 ring_offset = cur_rx % RX_BUF_LEN;
u32 rx_status;
- unsigned int rx_size;
unsigned int pkt_size;
struct sk_buff *skb;
- u16 status;
rmb();
@@ -1977,7 +1996,7 @@ static int rtl8139_rx(struct net_device
*/
if (unlikely(rx_size == 0xfff0)) {
tp->xstats.early_rx++;
- goto done;
+ break;
}
/* If Rx err or invalid rx_size/rx_status received
@@ -1989,7 +2008,8 @@ static int rtl8139_rx(struct net_device
(rx_size < 8) ||
(!(rx_status & RxStatusOK)))) {
rtl8139_rx_err (rx_status, dev, tp, ioaddr);
- return -1;
+ received = -1;
+ goto out;
}
/* Malloc up new buffer, compatible with net-2e. */
@@ -2025,19 +2045,13 @@ 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);
- }
+ rtl8139_isr_ack(tp, status);
+
+ status = RTL_R16 (IntrStatus);
}
- done:
+ if (0)
+ rtl8139_isr_ack(tp, status);
#if RTL8139_DEBUG > 1
DPRINTK ("%s: Done rtl8139_rx(), current %4.4x BufAddr %4.4x,"
@@ -2047,6 +2061,7 @@ static int rtl8139_rx(struct net_device
#endif
tp->cur_rx = cur_rx;
+out:
return received;
}
_
[-- Attachment #4: 8139-c.patch --]
[-- Type: text/plain, Size: 3284 bytes --]
This patch allows to update the interrupt status register after an
Rx overflow or a Rx fifo error even when the Rx buffer contains no packet.
The update must be kept in the packet processing loop to prevent an Rx
error storm.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
drivers/net/8139too.c | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff -puN drivers/net/8139too.c~8139too-10 drivers/net/8139too.c
--- linux-2.6.8-rc4/drivers/net/8139too.c~8139too-10 2004-08-12 21:37:18.000000000 +0200
+++ linux-2.6.8-rc4-fr/drivers/net/8139too.c 2004-08-12 22:10:21.000000000 +0200
@@ -1927,6 +1927,23 @@ static __inline__ void wrap_copy(struct
}
#endif
+static void rtl8139_isr_ack(struct rtl8139_private *tp, u16 status)
+{
+ void *ioaddr = tp->mmio_addr;
+
+ status = RTL_R16 (IntrStatus) & RxAckBits;
+
+ /* Clear out errors and receive interrupts */
+ 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);
+ }
+}
+
static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp,
int budget)
{
@@ -1934,20 +1951,22 @@ static int rtl8139_rx(struct net_device
int received = 0;
unsigned char *rx_ring = tp->rx_ring;
unsigned int cur_rx = tp->cur_rx;
+ unsigned int rx_size = 0;
+ u16 status = 0;
DPRINTK ("%s: In rtl8139_rx(), current %4.4x BufAddr %4.4x,"
" free to %4.4x, Cmd %2.2x.\n", dev->name, cur_rx,
RTL_R16 (RxBufAddr),
RTL_R16 (RxBufPtr), RTL_R8 (ChipCmd));
+ // status = RTL_R16 (IntrStatus);
+
while (netif_running(dev) && received < budget
&& (RTL_R8 (ChipCmd) & RxBufEmpty) == 0) {
u32 ring_offset = cur_rx % RX_BUF_LEN;
u32 rx_status;
- unsigned int rx_size;
unsigned int pkt_size;
struct sk_buff *skb;
- u16 status;
rmb();
@@ -1977,7 +1996,7 @@ static int rtl8139_rx(struct net_device
*/
if (unlikely(rx_size == 0xfff0)) {
tp->xstats.early_rx++;
- goto done;
+ break;
}
/* If Rx err or invalid rx_size/rx_status received
@@ -1989,7 +2008,8 @@ static int rtl8139_rx(struct net_device
(rx_size < 8) ||
(!(rx_status & RxStatusOK)))) {
rtl8139_rx_err (rx_status, dev, tp, ioaddr);
- return -1;
+ received = -1;
+ goto out;
}
/* Malloc up new buffer, compatible with net-2e. */
@@ -2025,19 +2045,13 @@ 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);
- }
+ rtl8139_isr_ack(tp, status);
+
+ status = RTL_R16 (IntrStatus);
}
- done:
+ if (0)
+ rtl8139_isr_ack(tp, status);
#if RTL8139_DEBUG > 1
DPRINTK ("%s: Done rtl8139_rx(), current %4.4x BufAddr %4.4x,"
@@ -2047,6 +2061,7 @@ static int rtl8139_rx(struct net_device
#endif
tp->cur_rx = cur_rx;
+out:
return received;
}
_
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-14 19:27 ` Francois Romieu
@ 2004-08-15 5:54 ` Jurriaan
2004-08-15 9:59 ` Francois Romieu
0 siblings, 1 reply; 10+ messages in thread
From: Jurriaan @ 2004-08-15 5:54 UTC (permalink / raw)
To: Francois Romieu; +Cc: netdev
From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sat, Aug 14, 2004 at 09:27:40PM +0200
> Jurriaan <thunder7@xs4all.nl> :
> [...]
> > Indeed they do. Both with -10 and with -10+-20 added on my working
> > 2.6.8-rc4-mm1 the booting process hangs somewhere while iptables is
> > installing my ipv6 firewall. This is reproducable, I've not tried to
> > install my firewall by hand after booting (call me paranoid).
> >
> > Thus:
> >
> > 2.6.8-rc4-mm1: boots, slow network
> > 2.6.8-rc4-mm1 + 8139too-mm-revert: boots, fast network
> > 2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10: doesn't boot
> > 2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10 + 8139too-20: doesn't boot
>
> Thanks. Erm... not exactly what I had expected.
>
> Could you return to 2.6.8-rc4-mm1 + 8139too-mm-revert.patch and try each
> of the three patches attached ?
>
patch #1 boots
patch #2 doesn't boot
patch #3 boots
btw, if I shut off my ipv6 firewall, patch #2 hangs in the ntpupdate
script, so it looks like the network card is hanging the system on first
actual use with #2.
Kind regards,
Jurriaan
--
Well, let's just say, 'if your VCR is still blinking 12:00,
you don't want Linux'.
Bruce Perens, Debian's Fearless Leader
Debian (Unstable) GNU/Linux 2.6.8-rc4-mm1 2x6078 bogomips load 0.34
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-15 5:54 ` Jurriaan
@ 2004-08-15 9:59 ` Francois Romieu
2004-08-15 10:44 ` Jurriaan
2004-08-15 17:16 ` Pasi Sjoholm
0 siblings, 2 replies; 10+ messages in thread
From: Francois Romieu @ 2004-08-15 9:59 UTC (permalink / raw)
To: Jurriaan; +Cc: Pasi Sjoholm, netdev
Jurriaan <thunder7@xs4all.nl> :
> > > 2.6.8-rc4-mm1 + 8139too-mm-revert + 8139too-10 + 8139too-20: doesn't boot
> >
> > Thanks. Erm... not exactly what I had expected.
> >
> > Could you return to 2.6.8-rc4-mm1 + 8139too-mm-revert.patch and try each
> > of the three patches attached ?
> >
> patch #1 boots
> patch #2 doesn't boot
> patch #3 boots
Ok, the early read of the interrupt status register is the culprit.
I have modified 8139too-10.patch so that it behaves like patch #1 and
resynced the whole serie.
Can you both apply the updated patches below ?
If M.Sjoholm's setup works fine, I'll forward the update for inclusion
in -mm/-netdev.
http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-mm-revert.patch
http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-10.patch
http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-20.patch
--
Ueimor
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-15 9:59 ` Francois Romieu
@ 2004-08-15 10:44 ` Jurriaan
2004-08-15 17:16 ` Pasi Sjoholm
1 sibling, 0 replies; 10+ messages in thread
From: Jurriaan @ 2004-08-15 10:44 UTC (permalink / raw)
To: Francois Romieu; +Cc: Pasi Sjoholm, netdev
From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sun, Aug 15, 2004 at 11:59:00AM +0200
>
> Ok, the early read of the interrupt status register is the culprit.
>
> I have modified 8139too-10.patch so that it behaves like patch #1 and
> resynced the whole serie.
>
> Can you both apply the updated patches below ?
>
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-mm-revert.patch
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-10.patch
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.8-rc4-mm1/8139too-20.patch
>
2.6.8-rc4-mm1 with those patches applied boots, and the network isn't
slow either.
Thanks,
Jurriaan
--
Sort of a pregnant Johnny Cash, actually.
Rev Hammer describing his voice in Elizabeth's Great Gallop
Debian (Unstable) GNU/Linux 2.6.8 2x6078 bogomips load 0.01
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1
2004-08-15 9:59 ` Francois Romieu
2004-08-15 10:44 ` Jurriaan
@ 2004-08-15 17:16 ` Pasi Sjoholm
1 sibling, 0 replies; 10+ messages in thread
From: Pasi Sjoholm @ 2004-08-15 17:16 UTC (permalink / raw)
To: Francois Romieu; +Cc: Jurriaan, netdev
On Sun, 15 Aug 2004, Francois Romieu wrote:
> Ok, the early read of the interrupt status register is the culprit.
> If M.Sjoholm's setup works fine, I'll forward the update for inclusion
> in -mm/-netdev.
Tested these patches and everything worked ok.
--
Pasi Sjöholm
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2004-08-15 17:16 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20040814060948.GA7842@middle.of.nowhere>
[not found] ` <20040814121533.GB18754@electric-eye.fr.zoreil.com>
2004-08-14 13:56 ` strange network performance degradation 2.6.8-rc3-mm1 -> 2.6.8-rc4-mm1 Jurriaan
2004-08-14 15:08 ` Francois Romieu
2004-08-14 16:10 ` Jurriaan
2004-08-14 17:28 ` Francois Romieu
2004-08-14 19:01 ` Jurriaan
2004-08-14 19:27 ` Francois Romieu
2004-08-15 5:54 ` Jurriaan
2004-08-15 9:59 ` Francois Romieu
2004-08-15 10:44 ` Jurriaan
2004-08-15 17:16 ` Pasi Sjoholm
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).