Re: [PATCH v3 net-next 7/7] net_sched: act_mirred: remove spinlock in fast path

2015-07-06 Thread Alexei Starovoitov
On 7/6/15 5:18 AM, Eric Dumazet wrote: 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 queu

Re: [PATCH v3 net-next 7/7] net_sched: act_mirred: remove spinlock in fast path

2015-07-06 Thread Eric Dumazet
ifb patch seems to work very well ;) # tc -s -d qd sh dev ifb10 qdisc mq 1: root Sent 190952 bytes 31798616 pkt (dropped 0, overlimits 0 requeues 0) backlog 29460b 491p requeues 0 qdisc netem 8002: parent 1:1 limit 10 delay 3.0ms Sent 238320936 bytes 3971225 pkt (dropped 0, overlimits 0

Re: [PATCH v3 net-next 7/7] net_sched: act_mirred: remove spinlock in fast path

2015-07-06 Thread Eric Dumazet
On Mon, Jul 6, 2015 at 2:53 PM, Jamal Hadi Salim wrote: > cant wait for the multi queue ifb. > Yeah, me too ;) Do not try this on a production host : ip link add ifb10 numtxqueues 100 type ifb [284151.950695] kernel BUG at /build/buildd/linux-3.13.0/net/core/dev.c:5868! [284151.950762] in

Re: [PATCH v3 net-next 7/7] net_sched: act_mirred: remove spinlock in fast path

2015-07-06 Thread Jamal Hadi Salim
On 07/06/15 08:18, Eric Dumazet wrote: 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 queu

[PATCH v3 net-next 7/7] net_sched: act_mirred: remove spinlock in fast path

2015-07-06 Thread Eric Dumazet
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