Re: [PATCH] NET: Multiqueue network device support.
From: jamal <hidden>
Date: 2007-06-09 14:36:22
On Sat, 2007-09-06 at 21:08 +1000, Herbert Xu wrote:
It takes the tx_lock in the xmit routine as well as in the clean-up routine. However, the lock is only taken when it updates the queue status. Thanks to the ring buffer structure the rest of the clean-up/xmit code will run concurrently just fine.
I know you are a patient man Herbert - so please explain slowly (if that doesnt make sense on email, then bear with me as usual) ;-> - it seems the cleverness is that some parts of the ring description are written to on tx but not rx (and vice-versa), correct? example the next_to_watch/use bits. If thats a yes - there at least should have been a big fat comment on the code so nobody changes it; - and even if thats the case, a) then the tx_lock sounds unneeded, correct? (given the RUNNING atomicity). b) do you even need the adapter lock? ;-> given the nature of the NAPI poll only one CPU can prune the descriptors. I have tested with just getting rid of tx_lock and it worked fine. I havent tried removing the adapter lock. cheers, jamal