From: Marc Zyngier <maz@kernel.org>
To: Manivannan Sadhasivam <mani@kernel.org>
Cc: Qiang Yu <qiang.yu@oss.qualcomm.com>,
tglx@linutronix.de, linux-kernel@vger.kernel.org
Subject: Re: MSIs not freed in GICv3 ITS driver
Date: Wed, 01 Apr 2026 17:08:15 +0100 [thread overview]
Message-ID: <86zf3m3bps.wl-maz@kernel.org> (raw)
In-Reply-To: <4lidir7hbrtwioxujeqyulk2e5wcjsy4qmlqjprncbogrepylz@wdwveqxidrxj>
On Wed, 01 Apr 2026 13:01:49 +0100,
Manivannan Sadhasivam <mani@kernel.org> wrote:
>
> On Wed, Apr 01, 2026 at 09:15:30AM +0100, Marc Zyngier wrote:
> > On Wed, 01 Apr 2026 08:59:02 +0100,
> > Manivannan Sadhasivam <mani@kernel.org> wrote:
> > >
> > > On Mon, Mar 30, 2026 at 09:17:10AM +0100, Marc Zyngier wrote:
> > > > On Tue, 03 Mar 2026 09:26:32 +0000,
> > > > Manivannan Sadhasivam <mani@kernel.org> wrote:
> > > > >
> > > > > The above issue should be applicable to other MSI controller drivers as well,
> > > > > not just DWC.
> > > >
> > > > The core issue is not with the irqchips, but with the MSI subsystem.
> > > >
> > > > Multi-MSI devices should always result in a strict power-of-2
> > > > allocation, because that's all the HW supports. Yet, we let drivers
> > > > request a stupid number of interrupts.
> > > >
> > > > I can see two outcomes: either we force the allocation to the next 2^
> > > > value, or we return an error to the caller. The first one costs memory
> > > > (extra irq descriptors), the latter forces people to fix their crap.
> > > >
> > > > I'm tempted to propose the latter.
> > > >
> > >
> > > That might cause a lot of regressions I believe. IMO, safe bet would be to
> > > handle the power of 2 allocations inside the irqchip drivers.
> >
> > What part of "this is a violation of the PCI spec" did you miss? I
> > didn't realise we were in the business of adding crap just because
> > endpoint drivers are broken.
> >
>
> I agree that the endpoint drivers requesting non power-of-2 MSIs is flawed in
> the first place. But a lot of drivers do:
>
> pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_MSI | PCI_IRQ_INTX);
> or
> pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
>
> This is so far working for these drivers and *may* suddenly break if the irqchip
> drivers start returning errors. I was just trying to avoid that
> situation.
1 *IS* a power of two. Any driver that does that is perfectly fine.
A driver that does
pci_alloc_irq_vectors(pdev, 1, 7, PCI_IRQ_MSI);
or
pci_alloc_irq_vectors(pdev, 7, 7, PCI_IRQ_MSI);
is broken. *That* is what the PCI core code should enforce.
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2026-04-01 16:08 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-08 15:39 MSIs not freed in GICv3 ITS driver Manivannan Sadhasivam
2024-07-08 17:31 ` Marc Zyngier
2024-07-09 17:37 ` Manivannan Sadhasivam
2024-07-09 19:24 ` Marc Zyngier
2024-07-21 8:50 ` Manivannan Sadhasivam
2026-01-16 15:03 ` Manivannan Sadhasivam
2026-02-19 16:54 ` Marc Zyngier
2026-02-25 9:34 ` Qiang Yu
2026-02-26 13:39 ` Marc Zyngier
2026-03-03 5:22 ` Qiang Yu
2026-03-03 9:26 ` Manivannan Sadhasivam
2026-03-30 8:17 ` Marc Zyngier
2026-04-01 7:59 ` Manivannan Sadhasivam
2026-04-01 8:15 ` Marc Zyngier
2026-04-01 12:01 ` Manivannan Sadhasivam
2026-04-01 16:08 ` Marc Zyngier [this message]
2026-04-01 17:37 ` Manivannan Sadhasivam
2026-04-07 10:45 ` Thomas Gleixner
2026-04-07 12:18 ` Manivannan Sadhasivam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86zf3m3bps.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mani@kernel.org \
--cc=qiang.yu@oss.qualcomm.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.