Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H}
@ 2026-07-22  8:53 Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 1/5] arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR Ovidiu Panait
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Ovidiu Panait @ 2026-07-22  8:53 UTC (permalink / raw)
  To: geert+renesas, magnus.damm, robh, krzk+dt, conor+dt,
	prabhakar.mahadev-lad.rj, biju.das.jz
  Cc: linux-renesas-soc, devicetree, linux-kernel, Ovidiu Panait

This series switches the GBETH TX scheduling policy to
Weighted-Round-Robin (WRR) on RZ/V2H, RZ/V2N, RZ/G3E, RZ/T2H and RZ/N2H
SoCs.

Since the GBETH nodes don't currently specify a TX scheduling policy,
stmmac falls back to Strict Priority. In that configuration the highest
priority queue gets all the traffic and starves the others under load.

Under sustained UDP TX load with multiple data streams, this starvation
triggers 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 showed that only the highest priority queue advances while
the others stall for more than 5 seconds, causing the netdev watchdog
reset.

Ovidiu Panait (5):
  arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to
    WRR
  arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to
    WRR
  arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to
    WRR
  arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to
    WRR
  arm64: dts: renesas: r9a09g078: Switch GBETH TX queue scheduling to
    WRR

 arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 10 ++++++++
 arch/arm64/boot/dts/renesas/r9a09g056.dtsi | 10 ++++++++
 arch/arm64/boot/dts/renesas/r9a09g057.dtsi | 10 ++++++++
 arch/arm64/boot/dts/renesas/r9a09g077.dtsi | 27 ++++++++++++++++++++++
 arch/arm64/boot/dts/renesas/r9a09g087.dtsi | 27 ++++++++++++++++++++++
 5 files changed, 84 insertions(+)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/5] arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H} Ovidiu Panait
@ 2026-07-22  8:53 ` Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 2/5] arm64: dts: renesas: r9a09g056: " Ovidiu Panait
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Ovidiu Panait @ 2026-07-22  8:53 UTC (permalink / raw)
  To: geert+renesas, magnus.damm, robh, krzk+dt, conor+dt,
	prabhakar.mahadev-lad.rj, biju.das.jz
  Cc: linux-renesas-soc, devicetree, linux-kernel, Ovidiu Panait

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.

Fixes: 050ee38d0002 ("arm64: dts: renesas: r9a09g057: Add GBETH nodes")
Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@renesas.com>
---
 arch/arm64/boot/dts/renesas/r9a09g057.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r9a09g057.dtsi b/arch/arm64/boot/dts/renesas/r9a09g057.dtsi
index 639693d464a7..188ce9f9c7c2 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g057.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g057.dtsi
@@ -1715,23 +1715,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>;
 				};
@@ -1816,23 +1821,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


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/5] arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H} Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 1/5] arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR Ovidiu Panait
@ 2026-07-22  8:53 ` Ovidiu Panait
  2026-07-22  9:04   ` sashiko-bot
  2026-07-22  8:53 ` [PATCH 3/5] arm64: dts: renesas: r9a09g047: " Ovidiu Panait
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Ovidiu Panait @ 2026-07-22  8:53 UTC (permalink / raw)
  To: geert+renesas, magnus.damm, robh, krzk+dt, conor+dt,
	prabhakar.mahadev-lad.rj, biju.das.jz
  Cc: linux-renesas-soc, devicetree, linux-kernel, Ovidiu Panait

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.

Fixes: c8c8a57c5b40 ("arm64: dts: renesas: r9a09g056: Add GBETH nodes")
Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@renesas.com>
---
 arch/arm64/boot/dts/renesas/r9a09g056.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r9a09g056.dtsi b/arch/arm64/boot/dts/renesas/r9a09g056.dtsi
index 76fa34ff3d07..77c2221a9e2a 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g056.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g056.dtsi
@@ -1585,23 +1585,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>;
 				};
@@ -1686,23 +1691,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


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/5] arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H} Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 1/5] arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 2/5] arm64: dts: renesas: r9a09g056: " Ovidiu Panait
@ 2026-07-22  8:53 ` Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 4/5] arm64: dts: renesas: r9a09g077: " Ovidiu Panait
  2026-07-22  8:53 ` [PATCH 5/5] arm64: dts: renesas: r9a09g078: " Ovidiu Panait
  4 siblings, 0 replies; 8+ messages in thread
From: Ovidiu Panait @ 2026-07-22  8:53 UTC (permalink / raw)
  To: geert+renesas, magnus.damm, robh, krzk+dt, conor+dt,
	prabhakar.mahadev-lad.rj, biju.das.jz
  Cc: linux-renesas-soc, devicetree, linux-kernel, Ovidiu Panait

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.

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


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/5] arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H} Ovidiu Panait
                   ` (2 preceding siblings ...)
  2026-07-22  8:53 ` [PATCH 3/5] arm64: dts: renesas: r9a09g047: " Ovidiu Panait
@ 2026-07-22  8:53 ` Ovidiu Panait
  2026-07-22  9:07   ` sashiko-bot
  2026-07-22  8:53 ` [PATCH 5/5] arm64: dts: renesas: r9a09g078: " Ovidiu Panait
  4 siblings, 1 reply; 8+ messages in thread
From: Ovidiu Panait @ 2026-07-22  8:53 UTC (permalink / raw)
  To: geert+renesas, magnus.damm, robh, krzk+dt, conor+dt,
	prabhakar.mahadev-lad.rj, biju.das.jz
  Cc: linux-renesas-soc, devicetree, linux-kernel, Ovidiu Panait

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.

Fixes: 394c1e24a4cf ("arm64: dts: renesas: r9a09g077: Add GMAC nodes")
Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@renesas.com>
---
 arch/arm64/boot/dts/renesas/r9a09g077.dtsi | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r9a09g077.dtsi b/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
index 40494159831d..bac39390ead7 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
@@ -642,36 +642,45 @@ queue7 {
 
 			mtl_tx_setup0: tx-queues-config {
 				snps,tx-queues-to-use = <8>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 				};
 
 				queue1 {
+					snps,weight = <0x11>;
 					snps,dcb-algorithm;
 				};
 
 				queue2 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 				};
 
 				queue3 {
+					snps,weight = <0x13>;
 					snps,dcb-algorithm;
 				};
 
 				queue4 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 				};
 
 				queue5 {
+					snps,weight = <0x15>;
 					snps,dcb-algorithm;
 				};
 
 				queue6 {
+					snps,weight = <0x16>;
 					snps,dcb-algorithm;
 				};
 
 				queue7 {
+					snps,weight = <0x17>;
 					snps,dcb-algorithm;
 				};
 			};
@@ -788,36 +797,45 @@ queue7 {
 
 			mtl_tx_setup1: tx-queues-config {
 				snps,tx-queues-to-use = <8>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 				};
 
 				queue1 {
+					snps,weight = <0x11>;
 					snps,dcb-algorithm;
 				};
 
 				queue2 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 				};
 
 				queue3 {
+					snps,weight = <0x13>;
 					snps,dcb-algorithm;
 				};
 
 				queue4 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 				};
 
 				queue5 {
+					snps,weight = <0x15>;
 					snps,dcb-algorithm;
 				};
 
 				queue6 {
+					snps,weight = <0x16>;
 					snps,dcb-algorithm;
 				};
 
 				queue7 {
+					snps,weight = <0x17>;
 					snps,dcb-algorithm;
 				};
 			};
@@ -934,36 +952,45 @@ queue7 {
 
 			mtl_tx_setup2: tx-queues-config {
 				snps,tx-queues-to-use = <8>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 				};
 
 				queue1 {
+					snps,weight = <0x11>;
 					snps,dcb-algorithm;
 				};
 
 				queue2 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 				};
 
 				queue3 {
+					snps,weight = <0x13>;
 					snps,dcb-algorithm;
 				};
 
 				queue4 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 				};
 
 				queue5 {
+					snps,weight = <0x15>;
 					snps,dcb-algorithm;
 				};
 
 				queue6 {
+					snps,weight = <0x16>;
 					snps,dcb-algorithm;
 				};
 
 				queue7 {
+					snps,weight = <0x17>;
 					snps,dcb-algorithm;
 				};
 			};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/5] arm64: dts: renesas: r9a09g078: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H} Ovidiu Panait
                   ` (3 preceding siblings ...)
  2026-07-22  8:53 ` [PATCH 4/5] arm64: dts: renesas: r9a09g077: " Ovidiu Panait
@ 2026-07-22  8:53 ` Ovidiu Panait
  4 siblings, 0 replies; 8+ messages in thread
From: Ovidiu Panait @ 2026-07-22  8:53 UTC (permalink / raw)
  To: geert+renesas, magnus.damm, robh, krzk+dt, conor+dt,
	prabhakar.mahadev-lad.rj, biju.das.jz
  Cc: linux-renesas-soc, devicetree, linux-kernel, Ovidiu Panait

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.

Fixes: c4698a34993b ("arm64: dts: renesas: r9a09g087: Add GMAC nodes")
Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@renesas.com>
---
 arch/arm64/boot/dts/renesas/r9a09g087.dtsi | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r9a09g087.dtsi b/arch/arm64/boot/dts/renesas/r9a09g087.dtsi
index e8d4f76949cc..03b976d93e10 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g087.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g087.dtsi
@@ -643,36 +643,45 @@ queue7 {
 
 			mtl_tx_setup0: tx-queues-config {
 				snps,tx-queues-to-use = <8>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 				};
 
 				queue1 {
+					snps,weight = <0x11>;
 					snps,dcb-algorithm;
 				};
 
 				queue2 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 				};
 
 				queue3 {
+					snps,weight = <0x13>;
 					snps,dcb-algorithm;
 				};
 
 				queue4 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 				};
 
 				queue5 {
+					snps,weight = <0x15>;
 					snps,dcb-algorithm;
 				};
 
 				queue6 {
+					snps,weight = <0x16>;
 					snps,dcb-algorithm;
 				};
 
 				queue7 {
+					snps,weight = <0x17>;
 					snps,dcb-algorithm;
 				};
 			};
@@ -790,36 +799,45 @@ queue7 {
 
 			mtl_tx_setup1: tx-queues-config {
 				snps,tx-queues-to-use = <8>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 				};
 
 				queue1 {
+					snps,weight = <0x11>;
 					snps,dcb-algorithm;
 				};
 
 				queue2 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 				};
 
 				queue3 {
+					snps,weight = <0x13>;
 					snps,dcb-algorithm;
 				};
 
 				queue4 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 				};
 
 				queue5 {
+					snps,weight = <0x15>;
 					snps,dcb-algorithm;
 				};
 
 				queue6 {
+					snps,weight = <0x16>;
 					snps,dcb-algorithm;
 				};
 
 				queue7 {
+					snps,weight = <0x17>;
 					snps,dcb-algorithm;
 				};
 			};
@@ -937,36 +955,45 @@ queue7 {
 
 			mtl_tx_setup2: tx-queues-config {
 				snps,tx-queues-to-use = <8>;
+				snps,tx-sched-wrr;
 
 				queue0 {
+					snps,weight = <0x10>;
 					snps,dcb-algorithm;
 				};
 
 				queue1 {
+					snps,weight = <0x11>;
 					snps,dcb-algorithm;
 				};
 
 				queue2 {
+					snps,weight = <0x12>;
 					snps,dcb-algorithm;
 				};
 
 				queue3 {
+					snps,weight = <0x13>;
 					snps,dcb-algorithm;
 				};
 
 				queue4 {
+					snps,weight = <0x14>;
 					snps,dcb-algorithm;
 				};
 
 				queue5 {
+					snps,weight = <0x15>;
 					snps,dcb-algorithm;
 				};
 
 				queue6 {
+					snps,weight = <0x16>;
 					snps,dcb-algorithm;
 				};
 
 				queue7 {
+					snps,weight = <0x17>;
 					snps,dcb-algorithm;
 				};
 			};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/5] arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 ` [PATCH 2/5] arm64: dts: renesas: r9a09g056: " Ovidiu Panait
@ 2026-07-22  9:04   ` sashiko-bot
  0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-07-22  9:04 UTC (permalink / raw)
  To: Ovidiu Panait; +Cc: wsa+renesas, conor+dt, robh, devicetree

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] This problem wasn't introduced by this patch, but the exact same missing `snps,tx-sched-wrr` bug remains unfixed in sibling SoCs (r9a09g047.dtsi, r9a09g077.dtsi, and r9a09g087.dtsi) that share the same GBETH hardware configuration (`renesas,rzv2h-gbeth` + `snps,dwmac-5.20`). Without specifying the WRR scheduling policy and weights, they will continue to experience Strict Priority queue starvation and netdev watchdog resets under heavy TX load.
--

--- Patch [2]: [PATCH 2/5] arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR ---
commit 2b31533db8d80852a1d20d1d3d37f647e9c19c9d
Author: Ovidiu Panait <ovidiu.panait.rb@renesas.com>

arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR

The GBETH ethernet nodes don't specify a TX scheduling policy, so stmmac falls
back to Strict Priority. This starvation triggers spurious adapter resets due
to TX queue timeouts. Switch the TX scheduling policy to Weighted-Round-Robin
(WRR) so that traffic is processed across all queues, eliminating the stalls.

> diff --git a/arch/arm64/boot/dts/renesas/r9a09g056.dtsi b/arch/arm64/boot/dts/renesas/r9a09g056.dtsi
> index d6c8c39df2a4d..281500d9ee42a 100644
> --- a/arch/arm64/boot/dts/renesas/r9a09g056.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g056.dtsi
> @@ -1569,23 +1569,28 @@ queue3 {
>  
>  			mtl_tx_setup0: tx-queues-config {
>  				snps,tx-queues-to-use = <4>;
> +				snps,tx-sched-wrr;

[Severity: High]
This is a pre-existing issue, but the exact same missing snps,tx-sched-wrr
configuration remains unfixed in sibling SoCs that share the same GBETH
hardware configuration.

Without specifying the WRR scheduling policy and weights, will these other
SoCs continue to experience Strict Priority queue starvation and netdev
watchdog resets under heavy TX load?

For example, in arch/arm64/boot/dts/renesas/r9a09g047.dtsi:mtl_tx_setup0:

			mtl_tx_setup0: tx-queues-config {
				snps,tx-queues-to-use = <4>;

				queue0 {
					snps,dcb-algorithm;
					snps,priority = <0x1>;
				};

The same applies to r9a09g077.dtsi and r9a09g087.dtsi.

Should a similar update be applied to these sibling SoCs?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260722085353.136986-1-ovidiu.panait.rb@renesas.com?part=2

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 4/5] arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to WRR
  2026-07-22  8:53 ` [PATCH 4/5] arm64: dts: renesas: r9a09g077: " Ovidiu Panait
@ 2026-07-22  9:07   ` sashiko-bot
  0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-07-22  9:07 UTC (permalink / raw)
  To: Ovidiu Panait; +Cc: robh, conor+dt, wsa+renesas, devicetree

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] The WRR scheduling fix was omitted for the identical GBETH nodes in `r9a09g087.dtsi`.
--

--- Patch [4]: [PATCH 4/5] arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to WRR ---
commit 58eaafff34c22b66e461cfdd5d49874250e99a8c
Author: Ovidiu Panait <ovidiu.panait.rb@renesas.com>

arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to WRR

The GBETH ethernet nodes default to Strict Priority scheduling, which can
cause TX queue starvation and trigger spurious adapter resets under load.
This patch switches the TX scheduling policy to Weighted-Round-Robin (WRR)
for the r9a09g077 SoC to prevent these watchdog timeouts.

> diff --git a/arch/arm64/boot/dts/renesas/r9a09g077.dtsi b/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
> --- a/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g077.dtsi
> @@ -642,36 +642,45 @@ queue7 {
>  
>  			mtl_tx_setup0: tx-queues-config {
>  				snps,tx-queues-to-use = <8>;
> +				snps,tx-sched-wrr;
>  
>  				queue0 {
> +					snps,weight = <0x10>;
>  					snps,dcb-algorithm;
>  				};

[Severity: High]
This is a pre-existing issue, but should the identical GBETH nodes in
arch/arm64/boot/dts/renesas/r9a09g087.dtsi also be updated?

Looking at mtl_tx_setup0, mtl_tx_setup1, and mtl_tx_setup2 in r9a09g087.dtsi,
they appear to be missing the snps,tx-sched-wrr property and queue weights:

arch/arm64/boot/dts/renesas/r9a09g087.dtsi:mtl_tx_setup0 {
    snps,tx-queues-to-use = <8>;
    queue0 {
        snps,dcb-algorithm;
    };
}

Does the r9a09g087 SoC suffer from the same TX queue starvation and netdev
watchdog resets under sustained UDP TX load if these fallback properties are
omitted there as well?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260722085353.136986-1-ovidiu.panait.rb@renesas.com?part=4

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-07-22  9:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-22  8:53 [PATCH 0/5] Fix GBETH TX scheduling policy for RZ/{V2H, V2N, G3E, T2H, N2H} Ovidiu Panait
2026-07-22  8:53 ` [PATCH 1/5] arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR Ovidiu Panait
2026-07-22  8:53 ` [PATCH 2/5] arm64: dts: renesas: r9a09g056: " Ovidiu Panait
2026-07-22  9:04   ` sashiko-bot
2026-07-22  8:53 ` [PATCH 3/5] arm64: dts: renesas: r9a09g047: " Ovidiu Panait
2026-07-22  8:53 ` [PATCH 4/5] arm64: dts: renesas: r9a09g077: " Ovidiu Panait
2026-07-22  9:07   ` sashiko-bot
2026-07-22  8:53 ` [PATCH 5/5] arm64: dts: renesas: r9a09g078: " Ovidiu Panait

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox