Subject: Re: [PATCH RFCv1 1/3] PCI: Allow ATS to be always on for CXL.cache capable devices

From: Jason Gunthorpe <[email-masked]>
Date: Thu, 26 Feb 2026 11:10:08 -0400

On Fri, Feb 20, 2026 at 02:45:49PM +0000, Robin Murphy wrote:
> >   The port driver will start first, install the ITS page in the DMA
> >   domain, VFIO will start second an switch the domain to BLOCKED, then
> >   to PAGING, and the ITS mapping used by the port driver will be lost.
> > 
> > And nobody will notice this has happened because the interrupts in the
> > port driver are only used for RAS IIRC so the net effect is your
> > system doesn't print AERs anymore.
> 
> Indeed VFIO's MSI cookie doesn't inherit any existing mappings from the DMA
> domain, and that wouldn't work anyway since the IOVAs would almost certainly
> be different. So we'd have to somehow free any existing AER interrupts
> before the domain switch, then fully re-request and reprogram them
> afterwards, in both DMA->UNMANAGED and UNMANAGED->DMA directions. Oof...

I'm inclined to say we should disable this VFIO feature if CONFIG_IRQ_MSI_IOMMU
is enabled... Better to hard fail then silently loose interrutps.

If that causes problems for people then we should investigate how to
fix the MSI.

It is really hard, but perhaps the most elegant solution would be to
allow the group members to have unique iommu domains by
dis-ambiguating the 'grouping for aliasing' and 'grouping for ACS'
cases. Then the portdrv can stay on its DMA domain and everything
keeps working for it. That sounds like a monster project...

Jason