Re: NFS Client in 2.2.13 (eepro100 problem)

Savochkin Andrey Vladimirovich (saw@msu.ru)
Sat, 27 Nov 1999 15:45:15 +0300


On Wed, Nov 24, 1999 at 01:45:36PM +0100, Trond Myklebust wrote:
> As far as I've been able to determine, it is not and NFS/RPC bug. It
> seems rather to be linked to the eepro100 ethernet driver.

I can confirm that eepro100 ethernet driver doesn't work reliable under a
high load. It died on my server about once in 2 days under a medium load (20
gigabyte per day). And I've heard about high loaded servers where the driver
dies in a matter of minutes.

Now I use a modified driver
ftp://ftp.nc.orc.ru/pub/Linux/people/saw/kernel/eepro100.c
which works much more reliable.

This driver has the following key differences:
1. Multicast filter setting was reimplemented in a reliable way.
2. Receive ring refilling was rewritten to handle temporary fails of socket
buffer allocation.
3. Full card reset in cases of transmitter hangs was implemented.

A slightly more detail list of changes is available:
ftp://ftp.nc.orc.ru/pub/Linux/people/saw/kernel/eepro100.changelog

If you wish to try this driver please note that
1. it compiles under recent 2.3 kernels. For 2.2 kernels you need to rename
`struct net_device' back to `struct device' and fix the code getting PCI
base address.
2. Some fixes in the driver may have a bad influence on the latency.
I plan to fix them in the future. However I'm not sure that the latency
changes are visible. Any reports on this matter are appreciated.
3. This driver is alpha-quality. I've received a lot of proposals how to
improve the code (e.g. from Alexey Kuznetsov). There are a lot of things
which I'd rewrite if I had a time. So be indulgent :-)

Please blame for all the bugs in this version of the driver me rather than
Donald Becker. All the remaining bugs are mine :-)

Best regards
Andrey V.
Savochkin

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/