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 entryWhy 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