RE: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Waskiewicz Jr, Peter P
Date: Monday, September 24, 2007 - 4:47 pm

> On Mon, 2007-24-09 at 15:57 -0700, Waskiewicz Jr, Peter P wrote:

We should make sure we're symmetric with the locking on enqueue to
dequeue.  If we use the single device queue lock on enqueue, then
dequeue will also need to check that lock in addition to the individual
queue lock.  The details of this are more trivial than the actual
dequeue to make it efficient though.


The dequeue locking would be pushed into the qdisc itself.  This is how
I had it originally, and it did make the code more complex, but it was
successful at breaking the heavily-contended queue_lock apart.  I have a
subqueue structure right now in netdev, which only has queue_state (for
netif_{start|stop}_subqueue).  This state is checked in sch_prio right
now in the dequeue for both prio and rr.  My approach is to add a
queue_lock in that struct, so each queue allocated by the driver would
have a lock per queue.  Then in dequeue, that lock would be taken when
the skb is about to be dequeued.

The skb->queue_mapping field also maps directly to the queue index
itself, so it can be unlocked easily outside of the context of the
dequeue function.  The policy would be to use a spin_trylock() in
dequeue, so that dequeue can still do work if enqueue or another dequeue
is busy.  And the allocation of qdisc queues to device queues is assumed
to be one-to-one (that's how the qdisc behaves now).

I really just need to put my nose to the grindstone and get the patches
together and to the list...stay tuned.

Thanks,
-PJ Waskiewicz
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 1/10 REV5] [Doc] HOWTO Documentation for batching, Krishna Kumar, (Fri Sep 14, 2:01 am)
[PATCH 4/10 REV5] [ethtool] Add ethtool support, Krishna Kumar, (Fri Sep 14, 2:02 am)
[PATCH 5/10 REV5] [IPoIB] Header file changes, Krishna Kumar, (Fri Sep 14, 2:02 am)
[PATCH 6/10 REV5] [IPoIB] CM & Multicast changes, Krishna Kumar, (Fri Sep 14, 2:03 am)
[PATCH 7/10 REV5] [IPoIB] Verbs changes, Krishna Kumar, (Fri Sep 14, 2:03 am)
[PATCH 9/10 REV5] [IPoIB] Implement batching, Krishna Kumar, (Fri Sep 14, 2:04 am)
[PATCH 10/10 REV5] [E1000] Implement batching, Krishna Kumar, (Fri Sep 14, 2:04 am)
Re: [PATCH 3/10 REV5] [sched] Modify qdisc_run to support ..., Evgeniy Polyakov, (Fri Sep 14, 5:15 am)
Re: [PATCH 10/10 REV5] [E1000] Implement batching, Evgeniy Polyakov, (Fri Sep 14, 5:47 am)
Re: [PATCH 10/10 REV5] [E1000] Implement batching, Krishna Kumar2, (Sun Sep 16, 8:56 pm)
[PATCHES] TX batching, jamal, (Sun Sep 23, 10:53 am)
[PATCH 3/4][NET_BATCH] net core use batching, jamal, (Sun Sep 23, 11:00 am)
[PATCH 4/4][NET_SCHED] kill dev->gso_skb, jamal, (Sun Sep 23, 11:02 am)
Re: [PATCHES] TX batching, Jeff Garzik, (Sun Sep 23, 11:19 am)
Re: [PATCHES] TX batching, jamal, (Sun Sep 23, 12:11 pm)
Re: [PATCHES] TX batching, Kok, Auke, (Sun Sep 23, 12:36 pm)
Re: [PATCHES] TX batching, jamal, (Sun Sep 23, 2:20 pm)
Re: [PATCHES] TX batching, Kok, Auke, (Mon Sep 24, 12:00 am)
RE: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, Waskiewicz Jr, Peter P, (Mon Sep 24, 12:12 pm)
Re: [PATCHES] TX batching, jamal, (Mon Sep 24, 3:38 pm)
Re: [PATCHES] TX batching, Kok, Auke, (Mon Sep 24, 3:52 pm)
[DOC] Net batching driver howto, jamal, (Mon Sep 24, 3:54 pm)
RE: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, Waskiewicz Jr, Peter P, (Mon Sep 24, 3:57 pm)
RE: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, Waskiewicz Jr, Peter P, (Mon Sep 24, 4:47 pm)
Re: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, Stephen Hemminger, (Mon Sep 24, 5:14 pm)
Re: [PATCHES] TX batching, Jeff Garzik, (Mon Sep 24, 5:15 pm)
RE: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, Waskiewicz Jr, Peter P, (Mon Sep 24, 5:31 pm)
Re: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, Stephen Hemminger, (Tue Sep 25, 8:24 am)
Re: [DOC] Net batching driver howto, Randy Dunlap, (Tue Sep 25, 1:16 pm)
Re: [DOC] Net batching driver howto, jamal, (Tue Sep 25, 3:28 pm)
[PATCHES] TX batching, jamal, (Sun Sep 30, 11:50 am)
[PATCH 2/3][NET_BATCH] net core use batching, jamal, (Sun Sep 30, 11:52 am)
[PATCH 3/3][NET_SCHED] kill dev->gso_skb, jamal, (Sun Sep 30, 11:53 am)
Re: [PATCHES] TX batching, jamal, (Sun Sep 30, 12:19 pm)
Re: [PATCH 2/3][NET_BATCH] net core use batching, Bill Fink, (Sun Sep 30, 9:11 pm)
Re: [PATCH 2/3][NET_BATCH] net core use batching, Patrick McHardy, (Mon Oct 1, 3:42 am)
Re: [PATCH 2/3][NET_BATCH] net core use batching, Bill Fink, (Mon Oct 1, 9:25 pm)
Re: [PATCH 2/3][NET_BATCH] net core use batching, Bill Fink, (Tue Oct 2, 10:29 pm)
[PATCHES] TX batching, jamal, (Sun Oct 7, 11:34 am)
[PATCH 2/3][NET_BATCH] net core use batching, jamal, (Sun Oct 7, 11:38 am)
[PATCH 3/3][NET_BATCH] kill dev->gso_skb, jamal, (Sun Oct 7, 11:39 am)
Re: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, David Miller, (Sun Oct 7, 9:51 pm)
Re: [PATCH 2/3][NET_BATCH] net core use batching, Krishna Kumar2, (Sun Oct 7, 10:03 pm)
Re: [PATCH 1/3] [NET_BATCH] Introduce batching interface, Krishna Kumar2, (Mon Oct 8, 2:59 am)
Re: [PATCHES] TX batching, Evgeniy Polyakov, (Mon Oct 8, 5:51 am)
Re: [PATCHES] TX batching, jamal, (Mon Oct 8, 7:05 am)
Re: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock, David Miller, (Mon Oct 8, 2:05 pm)
Re: parallel networking, David Miller, (Mon Oct 8, 2:11 pm)
Re: parallel networking, jamal, (Mon Oct 8, 3:30 pm)
Re: parallel networking, David Miller, (Mon Oct 8, 3:33 pm)
RE: parallel networking, Waskiewicz Jr, Peter P, (Mon Oct 8, 3:35 pm)
Re: parallel networking, jamal, (Mon Oct 8, 4:42 pm)
Re: parallel networking, Jeff Garzik, (Mon Oct 8, 6:53 pm)
Re: [PATCH 2/3][NET_BATCH] net core use batching, Krishna Kumar2, (Mon Oct 8, 8:09 pm)
Re: [PATCHES] TX batching, Krishna Kumar2, (Tue Oct 9, 1:14 am)
Re: [PATCHES] TX batching, jamal, (Tue Oct 9, 6:25 am)
Re: [PATCH 10/10 REV5] [E1000] Implement batching, Kok, Auke, (Tue Nov 13, 2:28 pm)
Re: [PATCH 10/10 REV5] [E1000] Implement batching, Krishna Kumar2, (Wed Nov 14, 1:30 am)