netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: jamal <hadi@cyberus.ca>
To: Patrick McHardy <kaber@trash.net>
Cc: "Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@intel.com>,
	davem@davemloft.net, netdev@vger.kernel.org, jeff@garzik.org,
	"Kok, Auke-jan H" <auke-jan.h.kok@intel.com>
Subject: Re: [PATCH] NET: Multiqueue network device support.
Date: Tue, 12 Jun 2007 11:12:45 -0400	[thread overview]
Message-ID: <1181661165.4067.31.camel@localhost> (raw)
In-Reply-To: <466E9DF2.9010505@trash.net>

On Tue, 2007-12-06 at 15:21 +0200, Patrick McHardy wrote:
> jamal wrote:

> 
> 
> Yes. Using a higher threshold reduces the overhead, but leads to
> lower priority packets getting out even if higher priority packets
> are present in the qdisc. 

As per earlier discussion, the packets already given to hardware should
be fine to go out first. If they get overriden by the chance arrival of
higher prio packets from the stack, then that is fine.

> Note that if we use the threshold with
> multiple queue states (threshold per ring) this doesn't happen.

I think if you do the math, youll find that (n - 1) * m is actually
not that unreasonable given parameters typically used on the drivers;
Lets for example take the parameters from e1000; the tx ring is around
256, the wake threshold is 32 packets (although i have found a better
number is 1/2 the tx size and have that changed in my batching patches).

Assume such a driver with above parameters doing Gige exists and it
implements 4 queus (n = 4); in such a case, (n-1)*m/32 is
3*256/32 = 3*8 = 24 times.

You have to admit your use case is a real corner case but lets be
conservative since we are doing a worst case scenario and from that
perspective consider that gige can be achieved at pkt levels of 86Kpps
to 1.48Mpps and if you are non-work conserving you will be running at
that rate and lets pick the low end of 86Kpps - what that means is there
is a blip (remember again this to be a corner case) for a few microsecs
once in a while with probability of what you described actually
occuring... 
Ok, so then update the threshold to 1/2 the tx ring etc and it is even
less. You get the message.

> If both driver and HW do it, its probably OK for short term, but it
> shouldn't grow too large since short-term fairness is also important.
> But the unnecessary dequeues+requeues can still happen.

In a corner case, yes there is a probability that will happen.
I think its extremely low.

> 
> It does have finite time, but its still undesirable. The average case
> would probably have been more interesting, but its also harder :)
> I also expect to see lots of requeues under "normal" load that doesn't
> ressemble the worst-case, but only tests can confirm that.
> 

And that is what i was asking of Peter. Some testing. Clearly the
subqueueing is more complex; what i am asking for is for the driver
to bear the brunt and not for it to be an impacting architectural
change.

> > I am not sure i understood - but note that i have asked for a middle
> > ground from the begining. 
> 
> 
> I just mean that we could rip the patches out at any point again
> without user visible impact aside from more overhead. So even
> if they turn out to be a mistake its easily correctable.

That is a good compromise i think. The reason i am spending my time
discussing this is i believe this to be a very important subsystem.
You know i have been voiceferous for years on this topic.
What i was worried about is these patches make it and become engrained
with hot lava on stone.

> I've also looked into moving all multiqueue specific handling to
> the top-level qdisc out of sch_generic, unfortunately that leads
> to races unless all subqueue state operations takes dev->qdisc_lock.
> Besides the overhead I think it would lead to ABBA deadlocks.

I  am confident you can handle that.

> So how do we move forward?

What you described above is a good compromise IMO. I dont have much time
to chase this path at the moment but what it does is give me freedom to
revisit later on with data points. More importantly you understand my
view;-> And of course you did throw a lot of rocks but it
a definete alternative ;->

cheers,
jamal



  reply	other threads:[~2007-06-12 15:12 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
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 [this message]
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=1181661165.4067.31.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).