Just thought I'd mention, my chip is a VT6102, so the original stalling
problem was with more than just the VT86C100A chip. With the patch, my chip
now recovers successfully from a TxAbort, so I'm able to download large
files again.
-----Original Message-----
From: O'Riordan, Kevin [mailto:[email protected]]
Sent: 16 July 2002 09:11
To: 'Roger Luethi '
Cc: '[email protected]'
Subject: RE: [[email protected]: [PATCH] #8 VIA Rhine (stalls, stats, backoff ,
clean up)]
Have tested this patch against 2.4.19-rc1 on a via rhine-II chip. Seems to
work fine with no ill effects. No longer getting timeout errors, or problem
where chip refuses to reset.
Have been testing with downloading several large ISOs.
From: Roger Luethi <[email protected]>
Subject: [PATCH] #8 VIA Rhine (stalls, stats, backoff, clean up)
To: [email protected]
Cc: Urban Widmark <[email protected]>,
Jeff Garzik <[email protected]>
Date: Mon, 15 Jul 2002 15:36:15 +0200
User-Agent: Mutt/1.3.27i
X-Mailing-List: [email protected]
This patch is a more comprehensive and cleaned up version of earlier VIA
Rhine patches I posted in May. It should be self-explanatory. The change
summary reads:
- show confused chip where to continue after Tx error; this is known to
fix
at least some (hopefully all) of the infamous Rhine stalls under load
- location of collision counter is chip specific (underflow counter,
too)
- allow selecting backoff algorithm -- added new module parameter;
this is a trade-off; higher performance typically means many aborts
due
to excessive collisions and performance degradation for other users.
Default comes from EEPROM and depends on the card.
- cosmetic cleanups
Note: Testing on several cards seems to indicate that waiting for the
chip
before restarting the Tx engine is pointless; in the rare case where the
flag is not down by the time the driver is ready to restart, it will
stay
up forever, but restarting the Tx engine immediately still works.
Beware: It seems that in certain cases, the interrupt status the driver
relies on for error handling is wrong. In those cases, only the
respective
buffer descriptor carries the correct error information. Should this
turn
out to be a problem in real life, the error handling handling can be
moved
into via_rhine_rx(), or the correct error code can be passed to
via_rhine_error() alternatively.
Some changes in the statistics section are tentative. They are coded
according to the specs, and they assume that the old code worked for the
VT86C100A, and that all chips but the VT86C100A work like the VT6102,
for
which the changes have been tested. FWIW, some counters work with the
VT6102 for the first time with this patch (it's not as if anybody cared,
or
the broken counters wouldn't have gone unnoticed for such a long time).
The patch is against the latest version in Jeff's public tree. It is
most
definitely an improvement for many Rhine users and should not create any
problems. Unless somebody finds bugs, I don't intend to release a new
version anytime soon.
Roger
----- End forwarded message -----
--
Expenditures rise to meet income.
<<via-rhine.c.8.patch>>