netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Michael Ma <make0818@gmail.com>
Cc: Linux Kernel Network Developers <netdev@vger.kernel.org>,
	jianjun.duan@alibaba-inc.com, xiangning.yu@alibaba-inc.com
Subject: Re: Per-CPU Queueing for QoS
Date: Sun, 12 Nov 2017 16:14:31 -0800	[thread overview]
Message-ID: <20171112161431.04d45345@xeon-e3> (raw)
In-Reply-To: <C1915904-3DE4-410F-A898-CA3C70F98E97@gmail.com>

On Sun, 12 Nov 2017 13:43:13 -0800
Michael Ma <make0818@gmail.com> wrote:

> Any comments? We plan to implement this as a qdisc and appreciate any early feedback.
> 
> Thanks,
> Michael
> 
> > On Nov 9, 2017, at 5:20 PM, Michael Ma <make0818@gmail.com> wrote:
> > 
> > Currently txq/qdisc selection is based on flow hash so packets from
> > the same flow will follow the order when they enter qdisc/txq, which
> > avoids out-of-order problem.
> > 
> > To improve the concurrency of QoS algorithm we plan to have multiple
> > per-cpu queues for a single TC class and do busy polling from a
> > per-class thread to drain these queues. If we can do this frequently
> > enough the out-of-order situation in this polling thread should not be
> > that bad.
> > 
> > To give more details - in the send path we introduce per-cpu per-class
> > queues so that packets from the same class and same core will be
> > enqueued to the same place. Then a per-class thread poll the queues
> > belonging to its class from all the cpus and aggregate them into
> > another per-class queue. This can effectively reduce contention but
> > inevitably introduces potential out-of-order issue.
> > 
> > Any concern/suggestion for working towards this direction?  

In general, there is no meta design discussions in Linux development
Several developers have tried to do lockless
qdisc and similar things in the past.

The devil is in the details, show us the code.

  reply	other threads:[~2017-11-13  0:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-10  1:20 Per-CPU Queueing for QoS Michael Ma
2017-11-12 21:43 ` Michael Ma
2017-11-13  0:14   ` Stephen Hemminger [this message]
2017-11-13 18:17     ` Michael Ma
2017-11-13 22:47       ` Alexander Duyck
2017-11-13 23:08         ` Eric Dumazet
2017-11-14  0:13           ` Alexander Duyck
2017-11-14  2:18             ` Michael Ma
2017-11-14  3:45               ` John Fastabend
2017-11-14  3:54                 ` Dave Taht
2017-11-14  4:53                 ` Tom Herbert
2017-11-14 23:10                   ` Michael Ma
2017-11-14 23:06                 ` Michael Ma
2017-11-14 22:59               ` Michael Ma
2017-11-14  2:05           ` Michael Ma
2017-11-14  2:06             ` Michael Ma
2017-11-14  2:02         ` Michael Ma

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=20171112161431.04d45345@xeon-e3 \
    --to=stephen@networkplumber.org \
    --cc=jianjun.duan@alibaba-inc.com \
    --cc=make0818@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=xiangning.yu@alibaba-inc.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).