Subject: Re: [PATCH] NET: Multiqueue network device support.

From: jamal <[email-masked]>
Date: Sat, 09 Jun 2007 10:36:17 -0400

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