[PATCH net] net: stmmac: Clear DMA errors for multi-channel interrupts
Nicolai Buchwitz
nb at tipi-net.de
Fri Oct 30 12:33:12 PDT 2026
On Fri, 2026-10-30 at 11:22 +0100, 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. It's
> already properly done for the single-chan interrupt, and for that
> introduce an "ERR" DMA dir, as we don't want to touch the RI/TI bits
> when handling these interrupts.
>
> To avoid duplication, the DMA TX error handling is factored out in a
> dedicated helper (in the same commit to ease backporting).
>
> Both of the above storms have been found on dwmac-motorcomm (YT8601),
> 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
--
Nicolai Buchwitz <nb at tipi-net.de>
More information about the linux-arm-kernel
mailing list