[eepro100] Re: card reports no resources

Andrey Savochkin saw@saw.sw.com.sg
Mon, 19 Feb 2001 17:06:41 -0800


Hello,

On Mon, Feb 12, 2001 at 12:03:29PM +0800, CheeChun Kok wrote:
[snip]
> The PC essentially runs a single process which continually
> reads IP packets from the NICs to process the data carried
> in them.  The error message starts appearing intermittently
> during operation.  We have not seen them occuring immediately
> after startup (hence ruling out receiver bug being the 
> cause ??)
> 
> We have not seen the message "can't fill rx buffer" using
> v1.09j-t Revision: 1.18 $ 1999/12/29 Modified by Andrey V. 
> Savochkin.  This suggest that we are not running short of
> kernel memory (??)

So, the "no resource" message means that the card thinks that there is
receive buffer shortage.
The natural reason for it is big traffic bursts.

On Mon, Feb 12, 2001 at 05:41:01PM +0800, CheeChun Kok wrote:
> 1. Changed RX_RING_SIZE to 256 (Is this a value too high, if so,
>    is there a max?)
>    After this was done, the error disappeared or maybe it has
>    merely been delayed.

You increase the number of buffers, and the messages disappear.
Reasonable.

>    Anyway, another error message appeared.  This time it is
>    'Too much work at interrupt, status = 0x4050'
>    where the status is decoded from Intel's driver code as 

It means that you have really big bursts (or really bad interrupt latency
because some other driver disables interrupts for too long).

[snip]
> 
> 2.  I then proceeded to change max_interrupt_work to match 
>     RX_RING_SIZE.  (Is there a reason why they are not the same
>     in the original set of codes? with max_interrupt_work = 20 and
>     RX_RING_SIZE = 32)
>     However, this causes 'card reports no resources' to reoccur.

This way it should work.
The only reason that may explain it is that you have horrible interrupt
latency.  For example, frame buffer on some chipsets has this property.

Best regards
		Andrey