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