net_sched: act_mirred: remove spinlock in fast path
authorEric Dumazet <edumazet@google.com>
Mon, 6 Jul 2015 12:18:09 +0000 (05:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Jul 2015 20:50:42 +0000 (13:50 -0700)
commit2ee22a90c7afac265bb6f7abea610b938195e2b8
tree586595f3aa88196669cbff3b6580353135c6e335
parent56e5d1ca183d8616fab377d7d466c244b4dbb3b9
net_sched: act_mirred: remove spinlock in fast path

Like act_gact, act_mirred can be lockless in packet processing

1) Use percpu stats
2) update lastuse only every clock tick to avoid false sharing
3) use rcu to protect tcfm_dev
4) Remove spinlock usage, as it is no longer needed.

Next step : add multi queue capability to ifb device

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tc_act/tc_mirred.h
net/sched/act_mirred.c