[ofa-general] RE: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock
jamal
hadi at cyberus.ca
Mon Sep 24 15:51:38 PDT 2007
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
More information about the general
mailing list