RE: [PATCH 0/2] iommu: Make pasid array per device

From: Tian, Kevin
Date: Wed Aug 02 2023 - 20:44:15 EST


> From: Jason Gunthorpe <jgg@xxxxxxxx>
> Sent: Wednesday, August 2, 2023 10:16 PM
>
> On Tue, Aug 01, 2023 at 02:31:23PM +0800, Lu Baolu wrote:
> > The PCI PASID enabling interface guarantees that the address space used
> > by each PASID is unique. This is achieved by checking that the PCI ACS
> > path is enabled for the device. If the path is not enabled, then the
> > PASID feature cannot be used.
> >
> > if (!pci_acs_path_enabled(pdev, NULL, PCI_ACS_RR | PCI_ACS_UF))
> > return -EINVAL;
> >
> > The PASID array is not an attribute of the IOMMU group. It is more
> > natural to store the PASID array in the per-device IOMMU data. This
> > makes the code clearer and easier to understand. No functional changes
> > are intended.
>
> Is there a reason to do this?
>
> *PCI* requires the ACS/etc because PCI kind of messed up how switches
> handled PASID so PASID doesn't work otherwise.
>
> But there is nothing that says other bus type can't have working
> (non-PCI) PASID and still have device isolation issues.
>
> So unless there is a really strong reason to do this we should keep
> the PASID list in the group just like the domain.
>

this comes from the consensus in [1].

[1] https://lore.kernel.org/linux-iommu/ZAcyEzN4102gPsWC@xxxxxxxxxx/