Re: [PATCH net v2 0/5] net: mvneta: fix the TX queue arbitration and the mqprio offload

From: Maxime Chevallier

Date: Tue Nov 03 2026 - 13:58:09 EST


Hi Josef,

On 11/3/26 13:50, Josef Schlehofer wrote:
> The NETA TX arbiter is left at its reset default, which serves the TX
> queues in fixed priority. Under load a busy queue starves the others.
> OpenWrt has worked around this since 2017 by sending all TX traffic
> of its 32-bit boards through queue 0 [1].
>
> Patch 3 serves the queues in weighted round robin. While working on it,
> four older bugs in the mqprio offload showed up. Turning the shaper off
> leaves the per-queue rate limits in place (patch 1). Deleting the qdisc
> never reaches the driver (patch 2). A failed setup is not undone
> (patch 4). Opening the interface or changing its MTU sets every rate
> limit to 10.23 Mbit/s (patch 5).
>
> The series was tested on a Turris Omnia (Armada 385). The other NETA
> variants were not tested, but the driver already programs registers of
> the same block (MVNETA_TX_MTU and the token sizes) on all of them.
> Suspend and resume were not tested.
>
> With patch 2, replacing an offloaded mqprio qdisc with another mqprio
> under a new handle loses the new configuration. The new qdisc is set up
> before the old one is torn down, and the driver now acts on that
> teardown. Software mqprio loses the configuration in the same way.

Wouldn't this break mqprio offload ? It's no longer priorising then ?

That behaviour of the high-prio queue potentially starving the other
is likely what mqprio users actually need, so maybe we need to setup
prio-based queue selection when adding an mqprio qdisc, and switch back
to WRR when its removed ?

Maxime