[PATCH net v2] net: stmmac: Clear DMA errors for multi-channel interrupts
Nicolai Buchwitz
nb at tipi-net.de
Tue Nov 3 05:21:32 PST 2026
Hi Maxime
On 3.11.2026 13:54, Maxime Chevallier wrote:
> The Multi-MSI interrupt handler doesn't clear the DMA error interrupts,
> and this leads to interrupt storms when one of these interrupts starts
> firing :
>
> - The RBU (rx buff unav) which triggers under high traffic load
>
> This triggers easily with iperf3 and small udp packets, and shows
> when running the netpoll kselftest
>
> - The RPS (rx process stop) which triggers when we stop the DMA RX.
>
> This one shows when restarting the RX logic without doing a down/up
> cycle, like when attaching an XDP program. The XSK kselftests
> triggers it.
>
> Let's make sure we clear these interrupts for multi-MSI cases, and call
> stmmac_global_err() upon tx_hard_error to avoid possible races with
> other interrupts/napi.
>
> For that introduce an "ERR" DMA dir, as we don't want to touch the
> RI/TI bits when handling these interrupts.
>
> Both of the above storms have been found on dwmac-motorcomm (YT6801),
> and are triggered by the xdp.py, xsk_reconfig.py, xdp_features.py,
> ring_reconfig.py and netpoll_basic kernel selftests.
>
> This seems to only affect dwmac4, there's no multi-msi mode on
> dwmac1000, and on dwxgmac these interrupts are masked as of today.
>
> Fixes: 6ccf12ae111e ("net: stmmac: use interrupt mode INTM=1 for
> multi-MSI")
> Signed-off-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
> [...]
Reviewed-by: Nicolai Buchwitz <nb at tipi-net.de>
Thanks,
Nicolai
More information about the linux-arm-kernel
mailing list