[realtek] RTL8139C gets stuck with Abnormal Interrupt / Oversized Frame errors

Donald Becker becker@scyld.com
Sat Nov 16 22:17:00 2002


On Sat, 16 Nov 2002, Vladimir I. wrote:

> As soon as there is a high-speed transfer from Ethernet to
> wireless (or vice versa)  the chances of Ethernet getting stuck
> get very high. The CPU is really loaded during these moments as
> it's busy polling PCMCIA card (it doesn't support bus master).

Hmmm, that traffic level shouldn't cause this problem!  You should check
out what is going on to load the CPU -- I suspect that the wireless card
device driver is disabling interrupt for a long time.

> So, the Ethernet gets stuck with the following message:
> 
> kernel: rtl8139.c:v1.17 1/28/2002 Donald Becker, becker@scyld.com.
...
> kernel: eth0: Abnormal interrupt, status 00000011.
> kernel: eth0: Oversized Ethernet frame, status 63b9096a!
> kernel: eth0: Abnormal interrupt, status 00000070.
> kernel: eth0: Abnormal interrupt, status 00000021.


This was addressed with the following change:

----------------------------
revision 1.35
date: 2002/10/05 17:24:00;  author: becker;  state: Exp;  lines: +66 -40
rtl8139.c:v1.21 10/5/2002

Split the abnormal and uncommon interrupt event handling into rtl_error().

Restart the receiver on a real RxUnderrun.

Call netif_link_up/down() on link change with the rtl8139 chip.
----------------------------

> The only thing I found out is that connecting to a switch 
> supporting 802.3X flow control seems to help a lot, but still 
> does not 100% solve the problem.

I'm surprised -- the chip is triggering flow control which should avoid
all overruns.


-- 
Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Scyld Beowulf cluster system
Annapolis MD 21403			410-990-9993