3c574TX: Too much work in interrupt

Paul LeMahieu lemahieu@vigeland.paradise.caltech.edu
Sun Aug 2 22:30:14 1998


Hi,

I've got a 3Com 3c574-TX PCMCIA card in a Gateway 5100 laptop.
I'm using Linux 2.0.34 and pcmcia-cs-3.0.4.

The problem:  I get many messages of the following sort:

   kernel: eth0: Too much work in interrupt, status 2011.
   kernel: eth0: Too much work in interrupt, status 2091.

For example, this is what I saw from a 4Mbyte ftp session:

Aug  2 19:13:00 solo1 kernel: eth0: Too much work in interrupt, status 2011.
Aug  2 19:13:17 solo1 last message repeated 185 times
Aug  2 19:13:17 solo1 kernel: eth0: Too much work in interrupt, status 2091.
Aug  2 19:13:17 solo1 kernel: eth0: Too much work in interrupt, status 2011.
Aug  2 19:13:18 solo1 last message repeated 233 times
Aug  2 19:13:18 solo1 kernel: eth0: Too much work in interrupt, status 2091.
Aug  2 19:13:18 solo1 kernel: eth0: Too much work in interrupt, status 2011.
Aug  2 19:13:18 solo1 last message repeated 237 times
Aug  2 19:13:18 solo1 kernel: eth0: Too much work in interrupt, status 2091.
Aug  2 19:13:18 solo1 kernel: eth0: Too much work in interrupt, status 2011.
Aug  2 19:13:19 solo1 last message k in interrupt, status 2011.
Aug  2 19:13:19 solo1 last message repeated 234 times
Aug  2 19:13:19 solo1 kernel: eth0: Too much work in interrupt, status 2091.
Aug  2 19:13:19 solo1 kernel: eth0: Too much work in interrupt, status 2011.
Aug  2 19:13:19 solo1 last message repeated 235 times
Aug  2 19:13:19 solo1 kernel:o1 last message repeated 235 times
Aug  2 19:13:19 solo1 kernel: eth0: Too much work in interrupt, status 2091.
Aug  2 19:13:19 solo1 kernel: eth0: Too much work in interrupt, status 2011.

The card seems to work fine, giving 0.3ms ping response times and
about 1300 KBytes/sec for a 4Mbyte ftp (sure, this isn't great
bandwidth, but I've learned not to expect much from a 16-bit PCMCIA bus.)

I tried fiddling with the max_interrupt_work parameter in the 3c574_cs.c
code, reducing it from 10 to 5 to 2.  In fact, the log results
above are from a module where I had set max_interrupt_work = 2.
I actually made the modification in 3c574_cs.c, recompiled the modules,
and then put it in /lib/modules/2.0.34.  As you can see, it doesn't
seem to make any difference.  I can use the card, but I'm getting logged
to death.  At least in my hardware configuration it appears to be a bug?

Here's what it looks like when I insert the card:

Aug  2 19:24:49 solo1 cardmgr[1809]: socket 0: 3Com 3c574TX Fast Ethernet
Aug  2 19:24:50 solo1 cardmgr[1809]: executing: 'insmod /lib/modules/2.0.34/pcmcia/3c574_cs.o'
Aug  2 19:24:50 solo1 kernel: 3c574_cs.c v1.06 4/17/98 Donald Becker/David Hinds, becker@cesdis.gsfc.nasa.gov.
Aug  2 19:24:50 solo1 kernel: loading device 'eth0'...
Aug  2 19:24:50 solo1 kernel: eth0: 3Com 3c574, port 0x300, irq 3, hw_addr 00:10:4B:5E:AF:04.
Aug  2 19:24:50 solo1 kernel: eth0:  No acceleration memory window.
Aug  2 19:24:50 solo1 kernel:   64K FIFO split 1:1 Rx:Tx, autoselect MII interface.
Aug  2 19:24:50 solo1 kernel:   MII transceiver at index 0, status 7809.
Aug  2 19:24:50 solo1 cardmgr[1809]: executing: './network start eth0'
Aug  2 19:24:50 solo1 cardmgr[1809]: + eth0
Aug  2 19:24:50 solo1 kernel: eth0: MII #0 status 7809, link partner capability 0000, setting half-duplex.

Any help would be greatly appreciated.

--Paul

Paul LeMahieu
lemahieu@paradise.caltech.edu