From: Jakub Kicinski <jakub.kicin...@netronome.com> Date: Mon, 12 Nov 2018 14:58:06 -0800
> Our Qdisc offload so far has been very simplistic. We held > and array of marking thresholds and statistics sized to the > number of PF queues. This was sufficient since the only > configuration we supported was single layer of RED Qdiscs > (on top of MQ or not, but MQ isn't really about queuing). > > As we move to add more Qdiscs it's time to actually try to > track the full Qdisc hierarchy. This allows us to make sure > our offloaded configuration reflects the SW path better. > We add graft notifications to MQ and RED (PRIO already sends > them) to allow drivers offloading those to learn how Qdiscs > are linked. MQ graft gives us the obvious advantage of being > able to track when Qdiscs are shared or moved. It seems > unlikely HW would offload RED's child Qdiscs but since the > behaviour would change based on linked child we should > stop offloading REDs with modified child. RED will also > handle the child differently during reconfig when limit > parameter is set - so we have to inform the drivers about > the limit, and have them reset the child state when > appropriate. > > The NFP driver will now allocate a structure to track each > Qdisc and link it to its children. We will also maintain > a shadow copy of threshold settings - to save device writes > and make it easier to apply defaults when config is > re-evaluated. Series applied, thanks.