# \[PATCH net-next 0/6\] net\_sched: act: lockless operation

- From: Eric Dumazet \<hidden\>
- Date: 2015-07-02 13:07:48 
- List: netdev
- Page: https://ratatoskr.run/netdev/2015/07/10991009
- Thread: https://ratatoskr.run/netdev/2015/07/10991009/t.md

```text
As mentioned by Alexei last week in Budapest, it is a bit weird
to take a spinlock in order to drop a packet in a tc filter...

Lets add percpu infra for tc actions and use it for gact.

Before changes, my host with 8 RX queues was handling 5 Mpps,
and more than 10 Mpps after.

Signed-off-by: Eric Dumazet <redacted>
Cc: Alexei Starovoitov <redacted>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: John Fastabend <john.fastabend@gmail.com>

Eric Dumazet (6):
  net: sched: extend percpu stats helpers
  net: sched: add percpu stats to actions
  net_sched: act: make tcfg_pval non zero
  net_sched: act: use a separate packet counters for gact_determ()
  net_sched: act: read tcfg_ptype once
  net_sched: act: remove spinlock in fast path

 include/net/act_api.h        |  4 +++-
 include/net/sch_generic.h    | 27 +++++++++++++++++----------
 include/net/tc_act/tc_gact.h |  7 ++++---
 net/core/dev.c               |  4 ++--
 net/sched/act_api.c          | 44 ++++++++++++++++++++++++++++++++++----------
 net/sched/act_bpf.c          |  2 +-
 net/sched/act_connmark.c     |  3 ++-
 net/sched/act_csum.c         |  3 ++-
 net/sched/act_gact.c         | 35 ++++++++++++++++++-----------------
 net/sched/act_ipt.c          |  2 +-
 net/sched/act_mirred.c       |  3 ++-
 net/sched/act_nat.c          |  3 ++-
 net/sched/act_pedit.c        |  3 ++-
 net/sched/act_simple.c       |  3 ++-
 net/sched/act_skbedit.c      |  3 ++-
 net/sched/act_vlan.c         |  3 ++-
 16 files changed, 96 insertions(+), 53 deletions(-)

-- 
2.4.3.573.g4eafbef
```
