Re: [PATCH v2] iommu/vt-d: Allocate DMAR fault interrupts locally

From: Jacob Pan
Date: Mon Apr 08 2024 - 12:37:20 EST


Hi Kevin,

On Mon, 8 Apr 2024 09:00:05 +0000, "Tian, Kevin" <kevin.tian@xxxxxxxxx>
wrote:

> > From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx>
> > Sent: Monday, April 8, 2024 3:22 PM
> >
> > On 2024/4/8 14:54, Tian, Kevin wrote:
> > >> From: Dimitri Sivanich <sivanich@xxxxxxx>
> > >> Sent: Friday, March 22, 2024 4:51 AM
> > >>
> > >> The Intel IOMMU code currently tries to allocate all DMAR fault
> > >> interrupt vectors on the boot cpu. On large systems with high DMAR
> > >> counts this results in vector exhaustion, and most of the vectors
> > >> are not initially allocated socket local.
> > >>
> > >> Instead, have a cpu on each node do the vector allocation for the
> > >> DMARs
> > on
> > >> that node. The boot cpu still does the allocation for its node
> > >> during its boot sequence.
> > >>
> > >> Signed-off-by: Dimitri Sivanich <sivanich@xxxxxxx>
> > >
> > > Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>
> > >
> >
> > Kevin,
> >
> > Jacob has another proposal which shares the irq among all IOMMUs.
> >
> > https://lore.kernel.org/linux-iommu/20240403234548.989061-1-
> > jacob.jun.pan@xxxxxxxxxxxxxxx/
> >
> > How do you like this?
> >
>
> I'm a bit concerning about the need of looping all IOMMU's in DMAR
> irqchip mask/unmask handlers. this one sounds simpler to me.
The difference is that with this patch, we still burn a few vectors on BSP
and the leading CPU of each socket.

e.g. on sapphire rapids, we lose 8 vectors to DMAR fault IRQ on BSP.

Thanks,

Jacob