Thread (15 messages) 15 messages, 4 authors, 2010-06-30

Re: b44: Reset due to FIFO overflow.

From: Eric Dumazet <hidden>
Date: 2010-06-28 11:09:38

Le lundi 28 juin 2010 à 11:17 +0100, James Courtier-Dutton a écrit :
On 28 June 2010 11:00, Eric Dumazet [off-list ref] wrote:
quoted
Problem is we receive a spike of RX network frames (possibly UDP or some
other RX only trafic), and chip raises an RX fifo overflow _error_
indication.
The cause of the RX overflow is in my case is TCP.
It is reproducible in mythtv.
While watching LiveTV, press "s" for the program guide.
The program guide is implemented into mythtv by a SQL query that
results in a large response.
The kernel is probably not servicing the RX FIFO quickly enough due to
it being busy doing something else. In this case, probably a video
mode switch.
Thats strange, b44 has a big RX ring... and tcp sender should wait for
ACK...
quoted
Some hardware are buggy enough that such error indication is fatal and
_require_ hardware reset. Thats life. I suspect b44 driver doing a full
reset is not a random guess from driver author, but to avoid a complete
NIC lockup.
Interesting, which hardware, apart from the b44, is it that "requires"
a hardware reset after a RX FIFO overflow.
Just take a look at some net drivers and you'll see some of them have
this requirement.

rtl8169_rx_interrupt()
...
	if (status & RxFOVF) {
		rtl8169_schedule_work(dev, rtl8169_reset_task);
		dev->stats.rx_fifo_errors++;
	}



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help