Re: [patch V4 00/21] genirq, irqchip: Convert ARM MSI handling to per device MSI domains

From: Marc Zyngier
Date: Mon Jul 15 2024 - 09:00:25 EST


On Mon, 15 Jul 2024 12:18:47 +0100,
Johan Hovold <johan@xxxxxxxxxx> wrote:
>
> On Sun, Jun 23, 2024 at 05:18:31PM +0200, Thomas Gleixner wrote:
> > This is version 4 of the series to convert ARM MSI handling over to
> > per device MSI domains.
>
> > The conversion aims to replace the existing platform MSI mechanism and
> > enables ARM to support the future PCI/IMS mechanism.
>
> > The series is only lightly tested due to lack of hardware, so we rely on
> > the people who have access to affected machines to help with testing.
> >
> > If there are no major objections raised or testing fallout reported, I'm
> > aiming this series for the next merge window.
>
> This series only showed up in linux-next last Friday and broke interrupt
> handling on Qualcomm platforms like sc8280xp (e.g. Lenovo ThinkPad X13s)
> and x1e80100 that use the GIC ITS for PCIe MSIs.
>
> I've applied the series (21 commits from linux-next) on top of 6.10 and
> can confirm that the breakage is caused by commits:
>
> 3d1c927c08fc ("irqchip/gic-v3-its: Switch platform MSI to MSI parent")
> 233db05bc37f ("irqchip/gic-v3-its: Provide MSI parent for PCI/MSI[-X]")
>
> Applying the series up until the change before 3d1c927c08fc unbreaks the
> wifi on one machine:
>
> ath11k_pci 0006:01:00.0: failed to enable msi: -22
> ath11k_pci 0006:01:00.0: probe with driver ath11k_pci failed with error -22
>
> and backing up until the commit before 233db05bc37f makes the NVMe come
> up again during boot on another.
>
> I have not tried to debug this further.

I need a few things from you though, because you're not giving much to
help you (and I'm travelling, which doesn't help).

Can you at least investigate what in ath11k_pci_alloc_msi() causes the
wifi driver to be upset? Does it normally use a single MSI vector or
MSI-X? How about your nVME device?

It would also help if you could define the DEBUG symbol at the very
top of irq-gic-v3-its.c and report the debug information that the ITS
driver dumps.

Thanks,

M.

--
Without deviation from the norm, progress is not possible.