[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-tulip
Subject:    Re: Increasing work done per interrupt
From:       Donald Becker <becker () cesdis1 ! gsfc ! nasa ! gov>
Date:       1997-12-08 19:07:32
[Download RAW message or body]

On Mon, 8 Dec 1997, B. James Phillippe wrote:

> 	In the testing I've been doing (with the analyzer), I've found
> that at small frame sizes (less than 256 bytes), the tulip.c 86H spits out
> lots of "Too much work at interrupt" messages, and then I have to
> reinitialize the cards with ifconfig to get them to talk again.

Hmmm, the driver *should* recover from emitting that message.  I'll read the
code again... looks fine.  I'll have to think some more about what could be
going wrong. 

> 	Looking through the driver, I see the boguscnt variable appears to
> be tracking the iterations in tulip_interrupt() before bailing?  It was
> set to 12, and I tried experimenting by setting it to 20 (same value as
> 3c59x.c).  When I run the test now, these messages are quieted and the
> driver can handle small frames en masse without bailing.  It doesn't
> change the speed it handles them at, of course; just seems to make it more
> tolerant.  Is this sane thing to do, and what are the ramifications of
> this change? 

This is the correct thing to do.  I'ved bumped up the default value to 20 in
v0.86I.

The right driver change is
 - to have a better model of the work done
    I should enhance the 'work-done' value to account for actual receive
    work.  That way I can safely increase the value even further.  The
    complication is that Rx work can vary greatly.
 - to limit the actual time in the interrupt by reading a timer
    An internal Tulip timer is available, but not on all chips.

Donald Becker					  becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center,  Greenbelt, MD.  20771
301-286-0882	     http://cesdis.gsfc.nasa.gov/pub/people/becker/whoiam.html

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic