Thread (61 messages) 61 messages, 4 authors, 2006-09-27

Re: [PATCH 12/23] e1000: Maybe stop TX if not enough free descriptors

From: Auke Kok <hidden>
Date: 2006-09-19 23:27:38

Stephen Hemminger wrote:
On Tue, 19 Sep 2006 16:45:06 -0400
Jeff Garzik [off-list ref] wrote:
quoted
looks OK except for the tasklet, which may starve if the lock is being 
held upon entry
Why would the tasklet starve anymore than NAPI?
Worst case, the transmitters fill the ring completely and have to
wait for the tasklet to clean up.

Maybe it would be better to always to Tx cleanup in tasklet even with
NAPI. Then the NAPI poll flow control would be used only for Rx.
As it stands, if receiver gets swamped, the poll doesn't get run often,
so the transmitter cleanup doesn't get run. A tasklet has the advantage
of eliminating the need for adapter->tx_queue_lock as well.
I gave it a spin and it looks horrible with NAPI - the box almost freezes up 
with even 2 clients. Minor nitpick: you forgot to delete a spin_lock_irqsave() 
call but gcc would have spotted that for you. Unsurprisingly it's more stable 
without NAPI.

I'm unsure (not enough knowlege) why you would prefer to remove lltx - care to 
enlighten me?

Cheers,

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