OSDN Git Service

Merge branch 'net-sched-act_skbedit-lockless-data-path'
authorDavid S. Miller <davem@davemloft.net>
Thu, 12 Jul 2018 21:54:12 +0000 (14:54 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Jul 2018 21:54:12 +0000 (14:54 -0700)
commitccb06fba51149e3f0e0f3debcfc270a1e1460f08
tree29ecf38f5595632596fd00c7f8b47c52e176aed6
parentcca9bab1b72cd2296097c75f59ef11ef80461279
parentc749cdda9089eb1fdb6a9ab98f945124d12f2595
Merge branch 'net-sched-act_skbedit-lockless-data-path'

Davide Caratti says:

====================
net/sched: act_skbedit: lockless data path

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
====================

Signed-off-by: David S. Miller <davem@davemloft.net>