Re: 2.2.13 networking: packets delayed by many seconds

Wolfgang Walter (wolfgang.walter@stusta.mhn.de)
Thu, 2 Dec 1999 02:21:22 +0100


On Wed, Dec 01, 1999 at 10:52:56PM +0000, Alan Cox wrote:
> > 21143 ethernet interface & the tulip 0.91g driver. Packets are delayed
> > for many seconds, up to 15, and are then all sent at once.
>
> Try the 0.89H one again. (its old tulip in config.*).
>
> > The system got into this state after about 6 hours of heavy network
> > traffic (NFS and SMB), and could not be recovered until a reboot.
> > This affected all network traffic; I'm using ping as an example
>
> It looks like a stuck IRQ

It's probably a bug in tulip 0.91g. It switches of interrupts if it thinks
there are to many and starts a timer of the card.

But it does not handle the timer interrupt correctly, so interrupts are not
aktivated again.

There are a lot of other problems, too. But they should be in 0.89H, too :-).

Would be nice if you send me a mail if this was the problem.

--- tulip.c.orig Thu Dec 2 02:49:47 1999
+++ tulip.c Thu Dec 2 02:51:13 1999
@@ -2703,18 +2703,18 @@
tp->stats.rx_missed_errors += inl(ioaddr + CSR8) & 0xffff;
outl(tp->csr6 | 0x2002, ioaddr + CSR6);
}
- if (csr5 & TimerInt) {
- if (tulip_debug > 2)
- printk(KERN_ERR "%s: Re-enabling interrupts, %8.8x.\n",
- dev->name, csr5);
- outl(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7);
- }
if (csr5 & (TPLnkPass | TPLnkFail | 0x08000000)) {
if (tp->link_change)
(tp->link_change)(dev, csr5);
}
/* Clear all error sources, included undocumented ones! */
outl(0x0800f7ba, ioaddr + CSR5);
+ }
+ if (csr5 & TimerInt) {
+ if (tulip_debug > 2)
+ printk(KERN_ERR "%s: Re-enabling interrupts, %8.8x.\n",
+ dev->name, csr5);
+ outl(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7);
}
if (--work_budget < 0) {
if (tulip_debug > 1)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/