From: Jeff Garzik <jeff@garzik.org>
To: hadi@cyberus.ca
Cc: "Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@intel.com>,
David Miller <davem@davemloft.net>,
krkumar2@in.ibm.com, johnpol@2ka.mipt.ru,
herbert@gondor.apana.org.au, kaber@trash.net,
shemminger@linux-foundation.org, jagana@us.ibm.com,
Robert.Olsson@data.slu.se, rick.jones2@hp.com, xma@us.ibm.com,
gaagaan@gmail.com, netdev@vger.kernel.org, rdreier@cisco.com,
mcarlson@broadcom.com, mchan@broadcom.com,
general@lists.openfabrics.org, tgraf@suug.ch,
randy.dunlap@oracle.com, sri@us.ibm.com
Subject: Re: [PATCH 2/3][NET_BATCH] net core use batching
Date: Mon, 08 Oct 2007 21:13:59 -0400 [thread overview]
Message-ID: <470AD5D7.1070000@garzik.org> (raw)
In-Reply-To: <1191886845.4373.138.camel@localhost>
jamal wrote:
> Ok, so the "concurency" aspect is what worries me. What i am saying is
> that sooner or later you have to serialize (which is anti-concurency)
> For example, consider CPU0 running a high prio queue and CPU1 running
> the low prio queue of the same netdevice.
> Assume CPU0 is getting a lot of interupts or other work while CPU1
> doesnt (so as to create a condition that CPU1 is slower). Then as long
> as there packets and there is space on the drivers rings, CPU1 will send
> more packets per unit time than CPU0.
> This contradicts the strict prio scheduler which says higher priority
> packets ALWAYS go out first regardless of the presence of low prio
> packets. I am not sure i made sense.
You made sense. I think it is important to note simply that the packet
scheduling algorithm itself will dictate the level of concurrency you
can achieve.
Strict prio is fundamentally an interface to a big imaginary queue, with
multiple packet insertion points (the individual bands/rings for each
prio band).
If you assume a scheduler implementation where each prio band is mapped
to a separate CPU, you can certainly see where some CPUs could be
substantially idle while others are overloaded, largely depending on the
data workload (and priority contained within).
Moreover, you increase L1/L2 cache traffic, not just because of locks,
but because of data dependencies:
user prio packet NIC TX ring
process band scheduler
cpu7 1 cpu1 1
cpu5 1 cpu1 1
cpu2 0 cpu0 0
At that point, it is probably more cache- and lock-friendly to keep the
current TX softirq scheme.
In contrast, a pure round-robin approach is more friendly to concurrency.
Jeff
next prev parent reply other threads:[~2007-10-09 1:15 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-08 18:26 [PATCH 2/3][NET_BATCH] net core use batching jamal
2007-10-08 19:46 ` Waskiewicz Jr, Peter P
2007-10-08 20:48 ` jamal
2007-10-08 21:26 ` [ofa-general] " David Miller
2007-10-08 22:34 ` jamal
2007-10-08 22:36 ` [ofa-general] " Waskiewicz Jr, Peter P
2007-10-08 22:33 ` Waskiewicz Jr, Peter P
2007-10-08 23:40 ` jamal
2007-10-09 1:13 ` Jeff Garzik [this message]
2007-10-09 1:41 ` [ofa-general] " David Miller
2007-10-09 2:01 ` Herbert Xu
2007-10-09 2:03 ` Herbert Xu
2007-10-09 2:04 ` Herbert Xu
2007-10-09 2:15 ` jamal
2007-10-09 2:16 ` Herbert Xu
2007-10-09 2:19 ` [ofa-general] " jamal
2007-10-09 2:20 ` Herbert Xu
2007-10-09 2:45 ` [ofa-general] " David Miller
2007-10-09 2:43 ` David Miller
2007-10-09 2:46 ` Herbert Xu
2007-10-09 2:12 ` [ofa-general] " Jeff Garzik
2007-10-09 2:46 ` David Miller
2007-10-09 18:48 ` [ofa-general] " Waskiewicz Jr, Peter P
2007-10-09 19:04 ` Jeff Garzik
2007-10-09 19:07 ` Waskiewicz Jr, Peter P
2007-10-09 2:14 ` [ofa-general] " jamal
2007-10-09 2:16 ` Herbert Xu
2007-10-09 2:47 ` [ofa-general] " David Miller
2007-10-09 16:51 ` Andi Kleen
2007-10-09 18:22 ` Stephen Hemminger
2007-10-09 18:30 ` Andi Kleen
2007-10-09 20:43 ` David Miller
2007-10-09 20:53 ` Stephen Hemminger
2007-10-09 21:22 ` David Miller
2007-10-09 21:56 ` jamal
2007-10-10 0:04 ` David Miller
2007-10-10 0:37 ` Andi Kleen
2007-10-10 0:50 ` David Miller
2007-10-10 9:16 ` Andi Kleen
2007-10-10 9:25 ` David Miller
2007-10-10 10:23 ` Andi Kleen
2007-10-10 10:44 ` David Miller
2007-10-10 13:08 ` jamal
2007-10-10 22:37 ` David Miller
2007-10-10 15:35 ` Waskiewicz Jr, Peter P
2007-10-10 16:02 ` Andi Kleen
2007-10-10 16:42 ` Waskiewicz Jr, Peter P
2007-10-10 9:53 ` Herbert Xu
2007-10-12 16:08 ` Brandeburg, Jesse
2007-10-12 17:05 ` Stephen Hemminger
2007-10-12 18:29 ` Andi Kleen
2007-10-12 18:27 ` Andi Kleen
2007-10-10 16:02 ` Bill Fink
2007-10-10 22:53 ` David Miller
2007-10-11 6:52 ` Krishna Kumar2
2007-10-09 1:31 ` Jeff Garzik
2007-10-09 10:58 ` [ofa-general] " Krishna Kumar2
2007-10-09 11:02 ` David Miller
2007-10-09 11:20 ` [ofa-general] " Krishna Kumar2
2007-10-09 11:21 ` Krishna Kumar2
2007-10-09 11:24 ` David Miller
2007-10-09 12:44 ` [ofa-general] " Jeff Garzik
2007-10-09 12:55 ` Herbert Xu
2007-10-09 13:00 ` Jeff Garzik
2007-10-09 20:14 ` David Miller
2007-10-09 20:20 ` [ofa-general] " Jeff Garzik
2007-10-09 21:25 ` David Miller
2007-10-09 20:22 ` [ofa-general] " Roland Dreier
2007-10-09 20:51 ` David Miller
2007-10-09 21:40 ` Roland Dreier
2007-10-09 22:44 ` [ofa-general] " Roland Dreier
2007-10-09 22:46 ` [ofa-general] [PATCH 1/4] IPoIB: Fix unused variable warning Roland Dreier
2007-10-09 22:47 ` [ofa-general] [PATCH 2/4] ibm_emac: Convert to use napi_struct independent of struct net_device Roland Dreier
2007-10-09 22:47 ` [PATCH 3/4] ibm_new_emac: Nuke SET_MODULE_OWNER() use Roland Dreier
2007-10-09 22:48 ` [PATCH 4/4] ibm_emac: Convert to use napi_struct independent of struct net_device Roland Dreier
2007-10-09 22:51 ` [ofa-general] " Roland Dreier
2007-10-09 23:17 ` [PATCH 1/4] IPoIB: Fix unused variable warning David Miller
2007-10-10 0:32 ` Jeff Garzik
2007-10-10 0:47 ` [ofa-general] " Jeff Garzik
-- strict thread matches above, loose matches on Subject: below --
2007-10-08 5:03 [ofa-general] Re: [PATCH 2/3][NET_BATCH] net core use batching Krishna Kumar2
2007-10-08 13:17 ` jamal
2007-09-14 9:00 [PATCH 0/10 REV5] Implement skb batching and support in IPoIB/E1000 Krishna Kumar
2007-09-16 23:17 ` [ofa-general] " David Miller
2007-09-17 0:29 ` jamal
2007-09-23 17:53 ` [PATCHES] TX batching jamal
2007-09-23 17:56 ` [ofa-general] [PATCH 1/4] [NET_SCHED] explict hold dev tx lock jamal
2007-09-23 17:58 ` [ofa-general] [PATCH 2/4] [NET_BATCH] Introduce batching interface jamal
2007-09-23 18:00 ` [PATCH 3/4][NET_BATCH] net core use batching jamal
2007-09-30 18:52 ` [ofa-general] [PATCH 2/3][NET_BATCH] " jamal
2007-10-01 4:11 ` Bill Fink
2007-10-01 13:30 ` jamal
2007-10-02 4:25 ` [ofa-general] " Bill Fink
2007-10-02 13:20 ` jamal
2007-10-03 5:29 ` [ofa-general] " Bill Fink
2007-10-03 13:42 ` jamal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=470AD5D7.1070000@garzik.org \
--to=jeff@garzik.org \
--cc=Robert.Olsson@data.slu.se \
--cc=davem@davemloft.net \
--cc=gaagaan@gmail.com \
--cc=general@lists.openfabrics.org \
--cc=hadi@cyberus.ca \
--cc=herbert@gondor.apana.org.au \
--cc=jagana@us.ibm.com \
--cc=johnpol@2ka.mipt.ru \
--cc=kaber@trash.net \
--cc=krkumar2@in.ibm.com \
--cc=mcarlson@broadcom.com \
--cc=mchan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=peter.p.waskiewicz.jr@intel.com \
--cc=randy.dunlap@oracle.com \
--cc=rdreier@cisco.com \
--cc=rick.jones2@hp.com \
--cc=shemminger@linux-foundation.org \
--cc=sri@us.ibm.com \
--cc=tgraf@suug.ch \
--cc=xma@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).