summaryrefslogtreecommitdiffstats
path: root/net/dccp/Kconfig
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2021-10-07 19:49:57 +0200
committerJakub Kicinski <kuba@kernel.org>2021-10-08 16:27:22 -0700
commit14132690860e4d06aa3e1c4d7d8e9866ba7756dd (patch)
treeed6be6c7407afa7de963537afc315aff2621ff75 /net/dccp/Kconfig
parentbccf56c4cbf18db7170350f18fa7d0530cce0ddc (diff)
downloadlinux-14132690860e4d06aa3e1c4d7d8e9866ba7756dd.tar.bz2
mqprio: Correct stats in mqprio_dump_class_stats().
Introduction of lockless subqueues broke the class statistics. Before the change stats were accumulated in `bstats' and `qstats' on the stack which was then copied to struct gnet_dump. After the change the `bstats' and `qstats' are initialized to 0 and never updated, yet still fed to gnet_dump. The code updates the global qdisc->cpu_bstats and qdisc->cpu_qstats instead, clobbering them. Most likely a copy-paste error from the code in mqprio_dump(). __gnet_stats_copy_basic() and __gnet_stats_copy_queue() accumulate the values for per-CPU case but for global stats they overwrite the value, so only stats from the last loop iteration / tc end up in sch->[bq]stats. Use the on-stack [bq]stats variables again and add the stats manually in the global case. Fixes: ce679e8df7ed2 ("net: sched: add support for TCQ_F_NOLOCK subqueues to sch_mqprio") Cc: John Fastabend <john.fastabend@gmail.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> https://lore.kernel.org/all/20211007175000.2334713-2-bigeasy@linutronix.de/ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/dccp/Kconfig')
0 files changed, 0 insertions, 0 deletions