Re: [PATCH 04/17] gpu: nova-core: allocate PCI MSI vector during probe
"Danilo Krummrich" <[email protected]>
| Newsgroups | dev.linux.lists.nova-gpu,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Sat Aug 8, 2026 at 5:11 AM CEST, John Hubbard wrote:
> Allocate a single PCI MSI interrupt vector in the probe path.
>
> Try MSI/MSI-X first. If that fails (possible in broken VFIO setups),
> fall back to INTx with a dev_warn so the issue is visible in dmesg.
> The allocation is devres-managed and automatically freed on unbind.
[...]
> +pub(crate) fn alloc_vector(pdev: &pci::Device<Bound>) -> Result<pci::IrqVector<'_>> {
> + let msi_types = IrqTypes::default().with(IrqType::Msi).with(IrqType::MsiX);
I was about to ask if we really need to bother with MSI and shouln't just go for
MSI-X only.
But then saw that the commit message mentions broken VFIO setups; can you expand
on this a bit? Which setups is the commit message referring to?
> +
> + let irq_vectors = match pdev.alloc_irq_vectors(1, 1, msi_types) {
> + Ok(vecs) => vecs,
> + Err(_) => {
> + dev_warn!(pdev.as_ref(), "MSI not available, falling back to INTx\n");
> + pdev.alloc_irq_vectors(1, 1, IrqTypes::default().with(IrqType::Intx))?
> + }
> + };
> +
> + irq_vectors.vector(0)
> +}