Re: parallel networking (was Re: [PATCH 1/4] [NET_SCHED] explict hold dev tx lock)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: jamal
Date: Monday, October 8, 2007 - 8:18 am

On Mon, 2007-08-10 at 10:22 -0400, Jeff Garzik wrote:


If you can get the scheduling/dequeuing to run on one CPU (as we do
today) it should work; alternatively you can totaly bypass the qdisc
subystem and go direct to the hardware for devices that are capable
and that would work but would require huge changes. 
My fear is there's a mini-scheduler pieces running on multi cpus which
is what i understood as being described.


sounds like strict prio scheduling to me which says "if low prio starves
so be it"


Does putting things in the same core help? But overall i agree with your
views. 


I think i see the receive with a lot of clarity, i am still foggy on the
txmit path mostly because of the qos/scheduling issues. 


Infact even with status quo theres a case that can be made to not bind
to interupts.
In my recent experience with batching, due to the nature of my test app,
if i let the interupts float across multiple cpus i benefit.
My app runs/binds a thread per CPU and so benefits from having more
juice to send more packets per unit of time - something i wouldnt get if
i was always running on one cpu.
But when i do this i found that just because i have bound a thread to
cpu3 doesnt mean that thread will always run on cpu3. If netif_wakeup
happens on cpu1, scheduler will put the thread on cpu1 if it is to be
run. It made sense to do that, it just took me a while to digest.


There would be cache benefits if you can free the packet on the same cpu
it was allocated; so the idea of skb affinity is useful in the minimal
in that sense if you can pull it. Assuming hardware is capable, even if
you just tagged it on xmit to say which cpu it was sent out on, and made
sure thats where it is freed, that would be a good start. 

Note: The majority of the packet processing overhead is _still_ the
memory subsystem latency; in my tests with batched pktgen improving the 
xmit subsystem meant the overhead on allocing and freeing the packets
went to something > 80%.
So something along the lines of parallelizing based on a split of alloc
free of sksb IMO on more cpus than where xmit/receive run would see
more performance improvements.



cheers,
jamal

-
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: parallel networking (was Re: [PATCH 1/4] [NET_SCHED] e ..., jamal, (Mon Oct 8, 8:18 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)