From mboxrd@z Thu Jan 1 00:00:00 1970 From: Davide Caratti Subject: [PATCH net-next v2 0/2] net/sched: act_skbedit: lockless data path Date: Wed, 11 Jul 2018 16:04:48 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: netdev@vger.kernel.org To: Cong Wang , "David S. Miller" Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:47010 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2387714AbeGKOJ0 (ORCPT ); Wed, 11 Jul 2018 10:09:26 -0400 Sender: netdev-owner@vger.kernel.org List-ID: the data path of act_skbedit can be faster if we avoid using spinlocks: - patch 1 converts act_skbedit statistics to use per-cpu counters - patch 2 lets act_skbedit use RCU to read/update its configuration test procedure (using pktgen from https://github.com/netoptimizer): # ip link add name eth1 type dummy # ip link set dev eth1 up # tc qdisc add dev eth1 clsact # tc filter add dev eth1 egress matchall action skbedit priority c1a0:c1a0 # for c in 1 2 4 ; do > ./pktgen_bench_xmit_mode_queue_xmit.sh -v -s 64 -t $c -n 5000000 -i eth1 > done test results (avg. pps/thread) $c | before patch | after patch | improvement ----+--------------+--------------+------------ 1 | 3917464 ± 3% | 4000458 ± 3% | irrelevant 2 | 3455367 ± 4% | 3953076 ± 1% | +14% 4 | 2496594 ± 2% | 3801123 ± 3% | +52% v2: rebased on latest net-next Davide Caratti (2): net/sched: skbedit: use per-cpu counters net/sched: act_skbedit: don't use spinlock in the data path include/net/tc_act/tc_skbedit.h | 37 ++++++++--- net/sched/act_skbedit.c | 113 ++++++++++++++++++++------------ 2 files changed, 98 insertions(+), 52 deletions(-) -- 2.17.1