3com 3c905c-txm
Bogdan Costescu
Bogdan.Costescu@IWR.Uni-Heidelberg.De
Fri May 12 09:12:30 2000
First of all thank you for Cc-ing to linux-vortex, I read l-k only as
KernelTraffic.
On Thu, 11 May 2000, Donald Becker wrote:
> Which chip was this with?
I'm using 3C905C for these tests.
> This behavior might have changed with the newer chips. The Download-Stall
> method is no longer required, and the semantics might have been
> unintentionally changed to "break" the command. If so, we will have to add
> another transmit and receive function pair to handle Tornado chips (which
> might not be a bad idea anyway). Note that I'm only guessing here -- it
> could be another bug that we are seeing, such as a interrupt that is occuring
> during the CommandComplete check.
I fully agree with the ideea of adding specific functions for Tornado; I
already started to...
I suspect that the place which produced the errors in my case is
boomerang_start_xmit; this is already after spin_lock_irqsave.
> The answer is that the Tx and Rx paths are very compact. They have to be
> that way for good performance. Having multiple functions doesn't add much
> to the driver size. But the large, complex media selection code is shared
> across generations and card types.
Agreed, but you also have the power management routines that only apply to
the newer hardware; if you count them too, it might be feasible to split
at least in two.
> > I suspect that the NIC has started to send a packet, encounters a
> > collision and somehow blocks the downstall completion until it reaches a
> > suitable state. It _should_ just give up and leave the packet in the Tx
> > FIFO.
There is no indication in the docs that this should happen, one way or
another. When there is no rule, I believe what I see.
> > Bogdan was getting driver failure after <30 minutes with the 2.2
> > driver. After upping the counter he has run his tests for four days.
> > He's on a switched LAN, which tends to torpedo the above theories...
In fact, I did the 2.3 driver approach, meaning having a function
wait_for_completion. This adds a jmp/ret to the code and might even affect
the cache.
> I'm going with either
> - new hardware badly emulates the old behavior in firmware, expecting that
> nothing was using it.
> - a misinterpretation what is going on.
I have no means of verifying the first one and surely no other ideea about
what's going on. Can you give us another explanation? (and a fix...)
Sincerely,
Bogdan Costescu
IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: Bogdan.Costescu@IWR.Uni-Heidelberg.De
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-vortex-request@beowulf.org