netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: hadi@cyberus.ca
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 15:35:30 -0700 (PDT)	[thread overview]
Message-ID: <20070606.153530.48530367.davem@davemloft.net> (raw)
In-Reply-To: <1181168020.4064.46.camel@localhost>

From: jamal <hadi@cyberus.ca>
Date: Wed, 06 Jun 2007 18:13:40 -0400

> From the above you can see they are simple. I am working on a couple of
> things (batching and recovering pktgen ipsec patches)- I will work on
> those patches soon after.
> 
> Iam actually not against the subqueue control - i know Peter needs it
> for certain hardware; i am just against the mucking around of the common
> case (single ring NIC) just to get that working. 

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.

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.

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.  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.

I really want to believe your proofs but they are something out of
a fairy tale :-)

> 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.

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.

  parent reply	other threads:[~2007-06-06 22:35 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 [this message]
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
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=20070606.153530.48530367.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=auke-jan.h.kok@intel.com \
    --cc=hadi@cyberus.ca \
    --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).