[eepro100] eepro100 problems: kernel 2.4.16 new VM: no resources, can't fill rx buffer

Donald Becker becker@scyld.com
Thu Dec 6 13:09:01 2001


On Thu, 6 Dec 2001, Michael Wilson wrote:

> I am experiencing errors with the eepro100 driver and kernel 2.4.16.
> 
> eepro100.c:v1.09j-t 9/29/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html

Grrrr, they still won't update the contact info.

> eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
...
> Here are the errors we are getting:
> 
> Dec  3 13:49:13 conslnx1 kernel: eth0: can't fill rx buffer (force 0)!
> Dec  3 13:49:13 conslnx1 kernel: eth0: can't fill rx buffer (force 1)!
> Dec  3 13:49:13 conslnx1 kernel: eth0: can't fill rx buffer (force 0)!

The kernel is out of memory, or at least thinks that it's out of memory.

> Dec  3 13:49:13 conslnx1 kernel: eth0: card reports no resources.
> Dec  3 13:49:22 conslnx1 kernel: eth0: card reports no resources.
> Dec  3 13:49:23 conslnx1 kernel: eth0: card reports no resources.
> Dec  3 13:49:23 conslnx1 kernel: eth0: card reports no resources.

And the card, quite naturally, complains.  The "no resources" state
covers various problems, both caused by the OS and undocumented internal
bugs.

> At about this point, the box becomes unresponsive (I got a shell on the 
> serial console long enough to hit return a couple times, but could not even
> issue a reboot command after that).

Very curious.  The problem doesn't necessarily point to the driver.  I
suspect the VM subsystem, and the driver is just the only kernel
subsystem that complains about not getting memory.

> I have seen this question asked before, and the response was that this was
> brought about my a low-memory condition.  The advice was to adjust 
> /proc/sys/vm/freepages, for example:
> 
> echo "1024 2048 4096" > /proc/sys/vm/freepages

I left this in just so that it was repeated :-)

> Now that there is a new VM in the kernel, "freepages" is gone.  The notion
> here is that this tuning is done inside the kernel, and that the need for
> the "freepages" variable is deprecated.

You mean the kernel should just dynamically adjust, like the pre-2.2 kernels
successfully did?  Uhmm, except those VM subsystems worked...

> Does anyone know how to fix this?

I'll continue to be catty: "obviously not the VM system guys".

> I would also be appreciative of any information or links to updated 
> documentation that explains the /proc variables of the new VM.

I suspect that this is the best approach...

> Note - rolling back to a kernel with the old VM is not a good option for us, 

..especially if you must be running a 2.4 kernel.  There isn't a 2.4
kernel release that has a robust VM system.   And with >2GB of memory,
a 2.4 kernel is almost a requirement.

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