From: jamal <hadi@cyberus.ca>
To: David Miller <davem@davemloft.net>
Cc: kaber@trash.net, peter.p.waskiewicz.jr@intel.com,
netdev@vger.kernel.org, jeff@garzik.org,
auke-jan.h.kok@intel.com
Subject: Re: [PATCH] NET: Multiqueue network device support.
Date: Wed, 06 Jun 2007 19:32:46 -0400 [thread overview]
Message-ID: <1181172766.4064.83.camel@localhost> (raw)
In-Reply-To: <20070606.153530.48530367.davem@davemloft.net>
On Wed, 2007-06-06 at 15:35 -0700, David Miller wrote:
> From: jamal <hadi@cyberus.ca>
> Date: Wed, 06 Jun 2007 18:13:40 -0400
> There are other reasons to do interesting things in this area,
> purely for parallelization reasons.
>
> For example, consider a chip that has N totally independant TX packet
> queues going out to the same ethernet port. You can lock and transmit
> on them independantly, and the chip internally arbitrates using DRR or
> whatever to blast the queues out to the physical port in some fair'ish
> manner.
>
> In that case you'd want to be able to do something like:
>
> struct mydev_tx_queue *q = &mydev->tx_q[smp_processor_id() % N];
>
> or similar in the ->hard_start_xmit() driver. But something generic
> to support this kind of parallelization would be great (and necessary)
> because the TX lock is unary per netdev and destroys all of the
> parallelization possible with something like the above.
>
I cant think of any egress scheduler that will benefit from that
approach. The scheduler is the decider of which packet goes out next
on the wire.
> With the above for transmit, and having N "struct napi_struct"
> instances for MSI-X directed RX queues, we'll have no problem keeping
> a 10gbit (or even faster) port completely full with lots of cpu to
> spare on multi-core boxes.
>
RX queues - yes, I can see; TX queues, it doesnt make sense to put
different rings on different CPUs.
> However, I have to disagree with your analysis of the multi-qdisc
> situation, and I tend to agree with Patrick.
> If you only have one qdisc to indicate status on, when is the queue
> full? That is the core issue.
I just described why it is not an issue. If you make the assumption it
is an issue, then it becomes one.
> Indicating full status when any of
> the hardware queues are full is broken, because we should never
> block out queuing of higher priority packets just because the
> low priority queue can't take any more frames, _and_ vice versa.
Dave, you didnt read anything i said ;-> The situation you describe is
impossible. low prio will never block high prio.
> I really want to believe your proofs but they are something out of
> a fairy tale :-)
They are a lot real than it seems. Please read again what i typed in ;->
And i will produce patches since this seems to be complex to explain.
> > The only way PHL will ever shutdown the path to the hardware is when
> > there are sufficient PHL packets.
> > Corrollary,
> > The only way PSL will ever shutdown the path to the hardware is when
> > there are _NO_ PSH packets.
>
> The problem with this line of thinking is that it ignores the fact
> that it is bad to not queue to the device when there is space
> available, _even_ for lower priority packets.
So use a different scheduler. Dont use strict prio. Strict prio will
guarantee starvation of low prio packets as long as there are high prio
packets. Thats the intent.
> The more you keep all available TX queues full, the less likely
> delays in CPU processing will lead to a device with nothing to
> do.
It is design intent - thats how the specific scheduler works.
cheers,
jamal
next prev parent reply other threads:[~2007-06-06 23:32 UTC|newest]
Thread overview: 153+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-04 21:40 [RFC] NET: Multiple queue hardware support PJ Waskiewicz
2007-06-04 21:40 ` [PATCH] NET: Multiqueue network device support PJ Waskiewicz
2007-06-05 11:50 ` jamal
2007-06-05 15:51 ` Waskiewicz Jr, Peter P
2007-06-05 22:28 ` jamal
2007-06-06 15:11 ` Patrick McHardy
2007-06-06 22:13 ` jamal
2007-06-06 22:30 ` Waskiewicz Jr, Peter P
2007-06-06 22:40 ` David Miller
2007-06-06 23:35 ` jamal
2007-06-06 23:56 ` David Miller
2007-06-07 16:08 ` Stephen Hemminger
2007-06-07 16:59 ` Waskiewicz Jr, Peter P
2007-06-11 12:08 ` Patrick McHardy
2007-06-07 22:04 ` jamal
2007-06-09 14:58 ` Leonid Grossman
2007-06-09 19:23 ` jamal
2007-06-09 21:23 ` Leonid Grossman
2007-06-09 22:14 ` Jeff Garzik
2007-06-10 3:02 ` jamal
2007-06-10 15:27 ` Leonid Grossman
2007-06-06 22:35 ` David Miller
2007-06-06 22:57 ` Waskiewicz Jr, Peter P
2007-06-06 23:00 ` David Miller
2007-06-06 23:14 ` Waskiewicz Jr, Peter P
2007-06-06 23:36 ` Jeff Garzik
2007-06-06 23:32 ` jamal [this message]
2007-06-06 23:48 ` Rick Jones
2007-06-06 23:54 ` jamal
2007-06-07 0:01 ` David Miller
2007-06-06 23:58 ` David Miller
2007-06-06 23:52 ` David Miller
2007-06-07 0:47 ` Jeff Garzik
2007-06-07 12:29 ` jamal
2007-06-07 15:03 ` Kok, Auke
2007-06-07 21:57 ` jamal
2007-06-07 22:06 ` Kok, Auke
2007-06-07 22:26 ` jamal
2007-06-07 22:30 ` Kok, Auke
2007-06-07 22:57 ` jamal
2007-06-07 22:44 ` David Miller
2007-06-07 22:54 ` jamal
2007-06-07 23:00 ` David Miller
2007-06-07 23:03 ` jamal
2007-06-08 0:31 ` Sridhar Samudrala
2007-06-08 1:35 ` jamal
2007-06-08 10:39 ` Herbert Xu
2007-06-08 11:34 ` jamal
2007-06-08 12:37 ` Herbert Xu
2007-06-08 13:12 ` jamal
2007-06-09 11:08 ` Herbert Xu
2007-06-09 14:36 ` jamal
2007-06-08 5:32 ` Krishna Kumar2
2007-06-08 19:55 ` Waskiewicz Jr, Peter P
2007-06-09 0:24 ` jamal
2007-06-07 22:55 ` Waskiewicz Jr, Peter P
2007-06-09 1:05 ` Ramkrishna Vepa
2007-06-06 23:53 ` David Miller
2007-06-07 1:08 ` jamal
2007-06-07 12:22 ` jamal
2007-06-11 12:01 ` Patrick McHardy
2007-06-11 11:58 ` Patrick McHardy
2007-06-11 12:23 ` jamal
2007-06-11 12:39 ` Patrick McHardy
2007-06-11 12:52 ` jamal
2007-06-11 13:03 ` Patrick McHardy
2007-06-11 13:29 ` jamal
2007-06-11 14:03 ` Patrick McHardy
2007-06-11 14:30 ` Cohen, Guy
2007-06-11 14:38 ` Patrick McHardy
2007-06-11 14:48 ` jamal
2007-06-11 15:00 ` Tomas Winkler
2007-06-11 15:14 ` jamal
2007-06-11 15:34 ` Cohen, Guy
2007-06-11 22:22 ` jamal
2007-06-12 14:04 ` Cohen, Guy
2007-06-12 15:23 ` jamal
2007-06-12 23:38 ` jamal
2007-06-11 14:40 ` jamal
2007-06-11 14:49 ` Patrick McHardy
2007-06-11 15:05 ` jamal
2007-06-11 15:12 ` Patrick McHardy
2007-06-11 15:25 ` jamal
2007-06-11 15:44 ` Patrick McHardy
2007-06-11 21:35 ` jamal
2007-06-11 23:01 ` Patrick McHardy
2007-06-12 0:58 ` Patrick McHardy
2007-06-12 2:29 ` jamal
2007-06-12 13:21 ` Patrick McHardy
2007-06-12 15:12 ` jamal
2007-06-12 21:02 ` David Miller
2007-06-12 21:13 ` Jeff Garzik
2007-06-12 21:17 ` Ben Greear
2007-06-12 21:26 ` David Miller
2007-06-12 21:46 ` Jeff Garzik
2007-06-12 21:52 ` Roland Dreier
2007-06-12 21:59 ` Jeff Garzik
2007-06-12 22:04 ` David Miller
2007-06-12 22:18 ` Jeff Garzik
2007-06-12 22:00 ` David Miller
2007-06-12 21:53 ` David Miller
2007-06-12 22:01 ` Jeff Garzik
2007-06-12 21:46 ` Ben Greear
2007-06-12 21:54 ` David Miller
2007-06-12 22:30 ` Jeff Garzik
2007-06-12 22:40 ` Ben Greear
2007-06-12 21:47 ` Jason Lunz
2007-06-12 21:55 ` David Miller
2007-06-12 22:17 ` Jason Lunz
2007-06-13 3:41 ` Leonid Grossman
2007-06-13 16:44 ` Rick Jones
2007-06-12 21:17 ` Patrick McHardy
2007-06-13 5:56 ` Zhu Yi
2007-06-13 11:34 ` Patrick McHardy
2007-06-14 1:51 ` Zhu Yi
2007-06-13 12:32 ` jamal
2007-06-13 13:12 ` Robert Olsson
2007-06-13 13:33 ` jamal
2007-06-13 15:01 ` Leonid Grossman
2007-06-13 15:53 ` Robert Olsson
2007-06-13 18:20 ` David Miller
2007-06-13 18:22 ` Waskiewicz Jr, Peter P
2007-06-13 21:30 ` jamal
2007-06-14 2:44 ` Zhu Yi
2007-06-14 11:48 ` jamal
2007-06-15 1:27 ` Zhu Yi
2007-06-15 10:49 ` jamal
2007-06-18 1:18 ` Zhu Yi
2007-06-18 15:16 ` jamal
2007-06-19 2:12 ` Zhu Yi
2007-06-19 16:04 ` jamal
2007-06-20 5:51 ` Zhu Yi
2007-06-21 15:39 ` jamal
2007-06-22 1:26 ` Zhu Yi
2007-06-25 16:47 ` jamal
2007-06-25 20:47 ` David Miller
2007-06-26 13:27 ` jamal
2007-06-26 20:57 ` David Miller
2007-06-27 22:32 ` jamal
2007-06-27 22:54 ` David Miller
2007-06-28 0:15 ` jamal
2007-06-28 0:31 ` David Miller
2007-06-12 9:19 ` Johannes Berg
2007-06-12 12:17 ` jamal
2007-06-11 17:36 ` Patrick McHardy
2007-06-11 18:05 ` Waskiewicz Jr, Peter P
2007-06-11 18:07 ` Patrick McHardy
2007-06-13 18:34 ` Waskiewicz Jr, Peter P
2007-06-11 17:52 ` Patrick McHardy
2007-06-11 17:57 ` Waskiewicz Jr, Peter P
2007-06-11 18:05 ` Patrick McHardy
2007-06-11 18:15 ` Waskiewicz Jr, Peter P
2007-06-11 18:24 ` Patrick McHardy
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=1181172766.4064.83.camel@localhost \
--to=hadi@cyberus.ca \
--cc=auke-jan.h.kok@intel.com \
--cc=davem@davemloft.net \
--cc=jeff@garzik.org \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
--cc=peter.p.waskiewicz.jr@intel.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).