On Mon, 2007-24-09 at 12:12 -0700, Waskiewicz Jr, Peter P wrote: > Hi Jamal, > I've been (slowly) working on resurrecting the original design > of my multiqueue patches to address this exact issue of the queue_lock > being a hot item. I added a queue_lock to each queue in the subqueue > struct, and in the enqueue and dequeue, just lock that queue instead of > the global device queue_lock. The only two issues to overcome are the > QDISC_RUNNING state flag, since that also serializes entry into the > qdisc_restart() function, and the qdisc statistics maintenance, which > needs to be serialized. Do you think this work along with your patch > will benefit from one another?
The one thing that seems obvious is to use dev->hard_prep_xmit() in the patches i posted to select the xmit ring. You should be able to do figure out the txmit ring without holding any lock. I lost track of how/where things went since the last discussion; so i need to wrap my mind around it to make sensisble suggestions - I know the core patches are in the kernel but havent paid attention to details and if you look at my second patch youd see a comment in dev_batch_xmit() which says i need to scrutinize multiqueue more. 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