State of the Driver (3c59x.c)

Brian D. Winters brianw@alumni.caltech.edu
Mon May 31 15:00:07 1999


On Mon, May 31, 1999 at 08:22:32AM -0400, Donald Becker wrote:
> Known issues remaining.
>    A reported unreliability with the Vortex chip that I've been unable to
>    track down (everyone was happy with 0.49, but the near-identical code in
>    0.99+ causes problems).

I was finally able to track down my problem late last week, and have
not seen it repeated under heavy testing all weekend.  The problem
went from rare nuisance to repeatable system lockup when I upgraded
one of the other machines on the network to dual PII 333 from dual
233.

It turns out that "PCI Post Write Buffers" should not be enabled (BIOS
setting) on my dual Pentium system.  I assume there is some sort of
bug that only shows up under heavy load with SMP, but I don't know
enough about the problem to really guess whether my hardware is at
fault or if it is a kernel problem (stock 2.2.9 with 3c59x
drivers 0.99H and 0.99Kb).  Anyway, this solved most of the really
nasty stuff I was seeing, although I was still having some problems
with NFS.  Small files would transfer just fine, but I was unable to
transfer large files.  The cp would start, there would be a brief
flicker of activity on the hub, and then a little while later I'd get
an NFS timeout on that particular operation.

This NFS problem was solved by going with a very small "window" as
suggested by someone on this list a few weeks ago.  I experimented
with a number of window sizes, and something in roughly the 1500 to
2000 range worked best.  Testing with larger numbers, between 2K and
4K the transfer rate dropped from 1.3MB/s to 100B/s.  Guess I'll stick
to numbers in the neighborhood of 2K then....  Does anyone know if it
is preferred for window to be a multiple of a particular number (1024,
1500, NFS [rw]size + packet headers, ???), or should I just guess
based on my experiments?

I did all of my testing this weekend using 0.99Kb.  I just downloaded
and installed 0.99L.  I don't expect any problems, but I'll certainly
speak up if I find any.

That's interesting.  I forgot to set up the small window after
bringing up the interface with 0.99L (/proc/net/route confirms that
window is set to 0="default", which is about 32K according to the
docs), but I'm seeing transfer rates of 1.5MB/s or better.  Very cool.
Donald has my vote for a 1.0 on this version of the driver.

Brian