Re: [PATCH 3/5] arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to WRR

From: Tommaso Merciai

Date: Fri Aug 07 2026 - 13:14:18 EST


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 <tommaso.merciai.xr@xxxxxxxxxxxxxx>

Kind Regards,
Tommaso

> Fixes: 41ffbb1c42d3 ("arm64: dts: renesas: r9a09g047: Add GBETH nodes")
> Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@xxxxxxxxxxx>
> ---
> 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
>