mbox series

[net-next,v3,0/3] Some optimization for lockless qdisc

Message ID 1624344597-11806-1-git-send-email-linyunsheng@huawei.com (mailing list archive)
Headers show
Series Some optimization for lockless qdisc | expand

Message

Yunsheng Lin June 22, 2021, 6:49 a.m. UTC
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.

V3: Add 'Acked-by' from Jakub and 'Tested-by' from Vladimir,
    and resend based on latest net-next.
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(-)

Comments

patchwork-bot+netdevbpf@kernel.org June 23, 2021, 7:40 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Tue, 22 Jun 2021 14:49:54 +0800 you wrote:
> 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:
> 
> [...]

Here is the summary with links:
  - [net-next,v3,1/3] net: sched: avoid unnecessary seqcount operation for lockless qdisc
    https://git.kernel.org/netdev/net-next/c/dd25296afaf6
  - [net-next,v3,2/3] net: sched: implement TCQ_F_CAN_BYPASS for lockless qdisc
    https://git.kernel.org/netdev/net-next/c/c4fef01ba479
  - [net-next,v3,3/3] net: sched: remove qdisc->empty for lockless qdisc
    https://git.kernel.org/netdev/net-next/c/d3e0f57501bd

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html