netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Per-CPU Queueing for QoS
@ 2017-11-10  1:20 Michael Ma
  2017-11-12 21:43 ` Michael Ma
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Ma @ 2017-11-10  1:20 UTC (permalink / raw)
  To: Linux Kernel Network Developers; +Cc: jianjun.duan, xiangning.yu

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?

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-11-14 23:10 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

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