linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/3] Some optimization for lockless qdisc
@ 2021-06-03  1:47 Yunsheng Lin
  2021-06-03  1:47 ` [PATCH net-next v2 1/3] net: sched: avoid unnecessary seqcount operation " Yunsheng Lin
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Yunsheng Lin @ 2021-06-03  1:47 UTC (permalink / raw)
  To: davem, kuba
  Cc: olteanv, ast, daniel, andriin, edumazet, weiwan, cong.wang,
	ap420073, netdev, linux-kernel, linuxarm, mkl, linux-can, jhs,
	xiyou.wangcong, jiri, andrii, kafai, songliubraving, yhs,
	john.fastabend, kpsingh, bpf, jonas.bonn, pabeni, mzhivich,
	johunt, albcamus, kehuan.feng, a.fatoum, atenart,
	alexander.duyck, hdanton, jgross, JKosina, mkubecek, bjorn,
	alobakin

Patch 1: remove unnecessary seqcount operation.
Patch 2: implement TCQ_F_CAN_BYPASS.
Patch 3: remove qdisc->empty.

Performance data for pktgen in queue_xmit mode + dummy netdev
with pfifo_fast:

 threads    unpatched           patched             delta
    1       2.60Mpps            3.21Mpps             +23%
    2       3.84Mpps            5.56Mpps             +44%
    4       5.52Mpps            5.58Mpps             +1%
    8       2.77Mpps            2.76Mpps             -0.3%
   16       2.24Mpps            2.23Mpps             +0.4%

Performance for IP forward testing: 1.05Mpps increases to
1.16Mpps, about 10% improvement.

V2: Adjust the comment and commit log according to discussion
    in V1.
V1: Drop RFC tag, Add nolock_qdisc_is_empty() and do the qdisc
    empty checking without the protection of qdisc->seqlock to
    aviod doing unnecessary spin_trylock() for contention case.
RFC v4: Use STATE_MISSED and STATE_DRAINING to indicate non-empty
        qdisc, and add patch 1 and 3.

Yunsheng Lin (3):
  net: sched: avoid unnecessary seqcount operation for lockless qdisc
  net: sched: implement TCQ_F_CAN_BYPASS for lockless qdisc
  net: sched: remove qdisc->empty for lockless qdisc

 include/net/sch_generic.h | 31 ++++++++++++++++++-------------
 net/core/dev.c            | 27 +++++++++++++++++++++++++--
 net/sched/sch_generic.c   | 23 ++++++++++++++++-------
 3 files changed, 59 insertions(+), 22 deletions(-)

-- 
2.7.4


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

end of thread, other threads:[~2021-06-15 23:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-03  1:47 [PATCH net-next v2 0/3] Some optimization for lockless qdisc Yunsheng Lin
2021-06-03  1:47 ` [PATCH net-next v2 1/3] net: sched: avoid unnecessary seqcount operation " Yunsheng Lin
2021-06-03  1:47 ` [PATCH net-next v2 2/3] net: sched: implement TCQ_F_CAN_BYPASS " Yunsheng Lin
2021-06-03  1:48 ` [PATCH net-next v2 3/3] net: sched: remove qdisc->empty " Yunsheng Lin
2021-06-03 18:35 ` [PATCH net-next v2 0/3] Some optimization " Jakub Kicinski
2021-06-08 12:53   ` Vladimir Oltean
2021-06-09  1:31     ` Yunsheng Lin
2021-06-09 16:20       ` Jakub Kicinski
2021-06-15 23:29       ` Vladimir Oltean

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