net: sched: add support for TCQ_F_NOLOCK subqueues to sch_mq
authorJohn Fastabend <john.fastabend@gmail.com>
Thu, 7 Dec 2017 17:57:20 +0000 (09:57 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Dec 2017 18:32:26 +0000 (13:32 -0500)
commitb01ac095c740fc21f4bb21abe900b0f5b3042cf9
treebd055fb59d32845be92e7c52f030778055b10c96
parent7e66016f2c65bfc1181f42274fcb7f1183ab1bb5
net: sched: add support for TCQ_F_NOLOCK subqueues to sch_mq

The sch_mq qdisc creates a sub-qdisc per tx queue which are then
called independently for enqueue and dequeue operations. However
statistics are aggregated and pushed up to the "master" qdisc.

This patch adds support for any of the sub-qdiscs to be per cpu
statistic qdiscs. To handle this case add a check when calculating
stats and aggregate the per cpu stats if needed.

Also exports __gnet_stats_copy_queue() to use as a helper function.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/gen_stats.h
net/core/gen_stats.c
net/sched/sch_mq.c