Re: [PATCH] irqchip/gic-v3-its: Enable dynamic MSI-X allocation
From: Vlad Poenaru
Date: Thu Oct 22 2026 - 15:40:46 EST
Hi,
Commit 0d6a7c417983 ("irqchip/gic-v3-its: Enable dynamic MSI-X
allocation"), merged for v7.3-rc1, breaks bnxt_en on our loving Grace
machines. Reverting it fixes the problem on current mainline.
Hardware:
- NVIDIA Grace (Neoverse V2), ACPI, GICv3 + ITS
- Broadcom BCM57508 (BCM957508-N1200FJ), FW 230.0.165.3, bnxt_en
- The same platform with a Mellanox NIC (mlx5) is not affected
The trigger is a ring resize: a boot-time udev .link file with
RxBufferSize=max, i.e. "ethtool -G eth0 rx 4095 tx 4095". The close
path never gets the HWRM_RING_FREE completions, then TX times out and
the machine hangs:
[ 58.221] bnxt_en 0002:01:00.0 eth0: Resp cmpl intr err msg: 0x51
[ 58.221] bnxt_en 0002:01:00.0 eth0: hwrm_ring_free type 1 failed. rc:fffffff0 err:0
... (repeats every ~3.7s for every ring)
[ 215.539] bnxt_en 0002:01:00.0 eth0: NETDEV WATCHDOG: CPU: 69: transmit queue 18 timed out 5118 ms
[ 215.539] bnxt_en 0002:01:00.0 eth0: TX timeout detected, starting reset task!
Bisecting v7.2..v7.3-rc3 on this machine points at the irq-drivers
merge (8b5d31123f41), and within it:
good: 9023960b74ab ("irqchip: Remove redundant dev_err()/dev_err_probe()")
bad: 0d6a7c417983 ("irqchip/gic-v3-its: Enable dynamic MSI-X allocation")
On current mainline (f47d223627f8) the same machine fails at ~55s;
with the commit reverted it runs cleanly.
So far it only reproduces with our debug config (KASAN, lockdep,
DEBUG_PAGEALLOC, DMA_API_DEBUG, CPUMASK_OFFSTACK, ...), not with our
production config. I haven't narrowed down which option matters.
My guess is that with pci_msix_can_alloc_dyn() now true behind the ITS,
bnxt switches to dynamic MSI-X allocation and something on that path
loses the completion interrupts, but I haven't root-caused it.
Happy to test patches or collect more data.
Reported-by: Andrew Preece <apreece@xxxxxxxx>
#regzbot introduced: 0d6a7c417983b
Thanks,
Vlad