Dust Li 14e54ab914 net: sched: fix tc -s class show no bstats on class with nolock subqueues
When a classful qdisc's child qdisc has set the flag
TCQ_F_CPUSTATS (pfifo_fast for example), the child qdisc's
cpu_bstats should be passed to gnet_stats_copy_basic(),
but many classful qdisc didn't do that. As a result,
`tc -s class show dev DEV` always return 0 for bytes and
packets in this case.

Pass the child qdisc's cpu_bstats to gnet_stats_copy_basic()
to fix this issue.

The qstats also has this problem, but it has been fixed
in 5dd431b6b9 ("net: sched: introduce and use qstats read...")
and bstats still remains buggy.

Fixes: 22e0f8b9322c ("net: sched: make bstats per cpu and estimator RCU safe")
Signed-off-by: Dust Li <dust.li@linux.alibaba.com>
Signed-off-by: Tony Lu <tonylu@linux.alibaba.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-30 10:38:40 -08:00
..
2019-09-27 15:10:34 -07:00
2019-11-18 19:32:59 -08:00
2019-07-12 16:03:16 -07:00
2019-09-26 08:56:17 +02:00
2019-10-24 14:53:48 -07:00
2019-11-27 11:06:20 -08:00
2019-11-26 14:40:13 -08:00
2019-11-05 18:25:54 +01:00
2019-11-08 11:36:48 -08:00
2019-11-24 16:58:44 -08:00