Re: [PATCH net-next 4/4] net: airoha: grow RX ring 4 to 128 descriptors
From: Lorenzo Bianconi
Date: Sun Aug 30 2026 - 10:25:11 EST
> Ring 4 is the shared "force to CPU" ring for a wide set of protocols
> (BOOTP, PPPoE Discovery, PPP LCP/IPCP/CHAP/IPv6CP/PAP, ISAKMP, DHCPv6,
> SIP, LLDP, ...) and currently falls into the 16-descriptor default in
> RX_DSCP_NUM(), same as most other non-hashed rings. The hw completion
> race recovered by airoha_qdma_rx_check_stall()/rx_recover_work() in
> the previous commits appears strongly correlated with a ring going
> from idle to receiving its first frame(s) - exactly the access pattern
> this shared ring sees under protocol negotiation bursts. Give it the
> same 128-descriptor allowance already used for rings 2/11/15, matching
> the other rings that see bursty, non-hashed traffic, to reduce how
> often that condition is hit in the first place.
>
> Ring 4 and the VIP classification that forces these protocols onto it
> are shared driver-wide, with no DT/hardware property distinguishing
> one chip variant's ring 4 from another's, so this isn't scoped to
> AN7583 specifically even though that's where the race was found and
> reproduced. 24h+ stress runs forcing repeated PPPoE/DHCP renegotiation
> on an AN7581 board, both with and without the two preceding fixes,
> completed 570+ forced reconnect cycles each with no regressions from
> the larger ring.
If you set RX_DSCP_NUM to 128 on AN7583 for rx queue 4, are you able to
trigger the issue?
>
> Signed-off-by: Vitaliy Sochnev <sochnev.v.74@xxxxxxxxx>
> ---
> drivers/net/ethernet/airoha/airoha_eth.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/airoha/airoha_eth.h b/drivers/net/ethernet/airoha/airoha_eth.h
> index d6591a779743..cd75c16d8d0c 100644
> --- a/drivers/net/ethernet/airoha/airoha_eth.h
> +++ b/drivers/net/ethernet/airoha/airoha_eth.h
> @@ -41,6 +41,7 @@
> #define TX_DSCP_NUM 1024
> #define RX_DSCP_NUM(_n) \
> ((_n) == 2 ? 128 : \
> + (_n) == 4 ? 128 : \
> (_n) == 11 ? 128 : \
> (_n) == 15 ? 128 : \
> (_n) == 0 ? 1024 : 16)
Can you please change the default from 16 to 32? This is the default value used
in the vendor sdk.
Regards,
Lorenzo
> --
> 2.55.0
>
Attachment:
signature.asc
Description: PGP signature