Hello,

I think that I found a problem with 3c905B Cyclone 100baseTx cards,
supported by the 3c59x driver. Please have a look at:

http://bugzilla.kernel.org/show_bug.cgi?id=7440

In short, the device stores received packets through DMA into buffers on
a rx_ring, which has a default size of 32 packets. It happens on my
network that my card will receive 32 packets (and likely more than that)
before the interrupt handler is called to handle these packets. As a
result, 32 packets are successfully read and the interrupt handler
returns, but after that, no more interrupt is ever sent by the device
to signal the reception of new incoming packets. This results in an
almost total loss of connectivity for the host. Reloading the driver
module restores normal condition.

I can provide extensive logs of this. I tried changing the RX_RING_SIZE
constant from 32 to 256 packets, and it definitely solved the problem,
as my network is not weird enough to send me 256 packets at the same
time yet :) Please don't ask me to try with another card of the same
model, as I'm currently not on the same continent as this server
(though I'd be very happy to conclude that the problem can be solved by
simply swapping the card).

I have little experience with this kind of things, but it is my
understanding that it might rather be a bug in card's firmware. If so,
there is hardly anything that can be done about it, right? Shouldn't the
driver provide a workaround in that case?

(Don't bother CCing me, I'm on the list.)

Regards,

-- 
Pierre Ynard
WTS #51 - No phone
"Une âme dans un corps, c'est comme un dessin sur une feuille de papier."
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to