[PATCH net-next 0/5] Improve the taprio qdisc's relationship with its children

From: Vladimir Oltean
Date: Wed May 31 2023 - 13:40:09 EST

Prompted by Vinicius' request to consolidate some child Qdisc
dereferences in taprio:

I remembered that I had left some unfinished work in this Qdisc, namely
commit af7b29b1deaa ("Revert "net/sched: taprio: make qdisc_leaf() see
the per-netdev-queue pfifo child qdiscs"").

This patch set represents another stab at, essentially, what's in the
title. Not only does taprio not properly detect when it's grafted as a
non-root qdisc, but it also returns incorrect per-class stats.
Eventually, Vinicius' request is addressed too, although in a different
form than the one he requested (which was purely cosmetic).

Review from people more experienced with Qdiscs than me would be
appreciated. I tried my best to explain what I consider to be problems.
I am deliberately targeting net-next because the changes are too
invasive for net - they were reverted from stable once already.

Vladimir Oltean (5):
net/sched: taprio: don't access q->qdiscs[] in unoffloaded mode during
net/sched: taprio: keep child Qdisc refcount elevated at 2 in offload
net/sched: taprio: try again to report q->qdiscs[] to qdisc_leaf()
net/sched: taprio: delete misleading comment about preallocating child
net/sched: taprio: dump class stats for the actual q->qdiscs[]

net/sched/sch_taprio.c | 60 ++++++++++++++++++++++++------------------
1 file changed, 35 insertions(+), 25 deletions(-)