From: David S. Miller Date: Wed, 23 Jun 2021 19:17:35 +0000 (-0700) Subject: Merge branch 'lockless-qdisc-opts' X-Git-Tag: irq-urgent-2021-07-11~79^2~54 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e940eb3c1ba8202a73004e6af62508cb9fbb9a0b;p=users%2Fdwmw2%2Flinux.git Merge branch 'lockless-qdisc-opts' Yunsheng Lin says: ==================== Some optimization for lockless qdisc 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. ==================== Signed-off-by: David S. Miller --- e940eb3c1ba8202a73004e6af62508cb9fbb9a0b