Re: [PATCH 3/5] arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to WRR
Tommaso Merciai <[email protected]>
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <anX5UAtB_PtITkxq@tom-desktop> |
On Wed, Jul 22, 2026 at 08:53:51AM +0000, Ovidiu Panait wrote: > The GBETH ethernet nodes don't specify a TX scheduling policy, so stmmac > falls back to Strict Priority. In this configuration the queue with the > highest priority gets all the traffic, starving the others under load. > > Under sustained UDP TX load with multiple data streams, this starvation > triggers spurious adapter resets due to TX queue timeouts: > > iperf3 -c <ip> -i0 -t60 --bind-dev end0 -u -b0 -P4 > end0: NETDEV WATCHDOG: CPU: 1: transmit queue 1 timed out 5228 ms > end0: Reset adapter. > > Investigation shows that only the highest priority queue is advancing > while the others stall for more than 5 seconds, causing a netdev watchdog > reset. > > Switch the TX scheduling policy to Weighted-Round-Robin (WRR) so that > traffic is processed across all queues, eliminating the stalls. > Tested on RZ/G3E evk: Tested-by: Tommaso Merciai <[email protected]> Kind Regards, Tommaso > Fixes: 41ffbb1c42d3 ("arm64: dts: renesas: r9a09g047: Add GBETH nodes") > Signed-off-by: Ovidiu Panait <[email protected]> > --- > arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi > index 73757e8e2197..060405d4a2dd 100644 > --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi > +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi > @@ -1913,23 +1913,28 @@ queue3 { > > mtl_tx_setup0: tx-queues-config { > snps,tx-queues-to-use = <4>; > + snps,tx-sched-wrr; > > queue0 { > + snps,weight = <0x10>; > snps,dcb-algorithm; > snps,priority = <0x1>; > }; > > queue1 { > + snps,weight = <0x12>; > snps,dcb-algorithm; > snps,priority = <0x2>; > }; > > queue2 { > + snps,weight = <0x14>; > snps,dcb-algorithm; > snps,priority = <0x4>; > }; > > queue3 { > + snps,weight = <0x18>; > snps,dcb-algorithm; > snps,priority = <0x8>; > }; > @@ -2013,23 +2018,28 @@ queue3 { > > mtl_tx_setup1: tx-queues-config { > snps,tx-queues-to-use = <4>; > + snps,tx-sched-wrr; > > queue0 { > + snps,weight = <0x10>; > snps,dcb-algorithm; > snps,priority = <0x1>; > }; > > queue1 { > + snps,weight = <0x12>; > snps,dcb-algorithm; > snps,priority = <0x2>; > }; > > queue2 { > + snps,weight = <0x14>; > snps,dcb-algorithm; > snps,priority = <0x4>; > }; > > queue3 { > + snps,weight = <0x18>; > snps,dcb-algorithm; > snps,priority = <0x8>; > }; > -- > 2.34.1 >