[tulip] tulip max_interrupt_work tuning

Donald Becker becker@scyld.com
Mon, 22 Oct 2001 17:46:19 -0400 (EDT)


On Mon, 22 Oct 2001, Mark Chou wrote:

> I have a Linksys v4.1 card in an old Pentium system acting as my internet
> gateway/firewall.  Using the 0.92x tulip driver (default options) I get
> this
> often:
> 
>     eth0:  Too much work during an interrupt, csr5=0xfc69c0d0

This isn't a driver error.  It's the driver warning you that something
unusual is going on with some other part of your kernel.  The interrupt
handler should be able to easily keep up with full rate incoming
traffic.  Something else is slowing the system down so that the
interrupt handler isn't getting as much CPU time as it wants.

The usual culprit with 2.2 and earlier is some other interrupt handler
that _doesn't_ limit its work.  With the 2.4 kernel, there seems to be
much more overhead and the wrong network traffic alone will sometimes
result in these messages.  

> Briefly scanning through the code of driver, I found
> 
>     static int max_interrupt_work = 25;
> 
> I reduced this number down to 15 (options tulip max_interrupt_work 15 in
> /etc/modules.conf), now network connection works _reliably_ but slowly. 

You should be getting the warning message much more frequently with a
limit of 15.  Now set it to 150...

> How
> does one determine the optimal number for this setting?  Is it pretty
> much
> trial and error?

There is no single tuned setting.  You should never see the "too much
work" message in the first place.


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