Currently, stats accounting for NOLOCK qdisc enslaved to classful (lock)
qdiscs is buggy. Per CPU values are ignored in most places, as a result,
stats dump in the above scenario always report 0 length backlog and parent
backlog len is not updated correctly on NOLOCK qdisc removal.

The first patch address stats dumping, and the second one child qdisc removal.
I'm targeting the net tree as this is a bugfix, but it could be moved to
net-next due to the relatively large diffstat.

Paolo Abeni (2):
  net: sched: introduce and use qstats read helpers
  net: sched: introduce and use qdisc tree flush/purge helpers

 include/net/sch_generic.h | 44 ++++++++++++++++++++++++++++++++-------
 net/sched/sch_cbq.c       | 10 ++++-----
 net/sched/sch_drr.c       | 16 ++++----------
 net/sched/sch_hfsc.c      | 19 +++++------------
 net/sched/sch_htb.c       | 22 ++++++--------------
 net/sched/sch_mq.c        |  2 +-
 net/sched/sch_mqprio.c    |  3 +--
 net/sched/sch_multiq.c    | 10 ++++-----
 net/sched/sch_prio.c      | 10 +++------
 net/sched/sch_qfq.c       | 14 ++-----------
 net/sched/sch_red.c       |  3 +--
 net/sched/sch_sfb.c       |  3 +--
 net/sched/sch_taprio.c    |  2 +-
 net/sched/sch_tbf.c       |  3 +--
 14 files changed, 71 insertions(+), 90 deletions(-)

-- 
2.20.1

Reply via email to