Re: [PATCH v12 04/17] PCI: Enable PASID only when ACS RR & UF enabled on upstream path

Jason Gunthorpe
2022-08-26T14:26:45Z

On Fri, Aug 26, 2022 at 08:11:28PM +0800, Lu Baolu wrote:
> The Requester ID/Process Address Space ID (PASID) combination
> identifies an address space distinct from the PCI bus address space,
> e.g., an address space defined by an IOMMU.
>
> But the PCIe fabric routes Memory Requests based on the TLP address,
> ignoring any PASID (PCIe r6.0, sec 2.2.10.4), so a TLP with PASID that
> SHOULD go upstream to the IOMMU may instead be routed as a P2P
> Request if its address falls in a bridge window.
>
> To ensure that all Memory Requests with PASID are routed upstream,
> only enable PASID if ACS P2P Request Redirect and Upstream Forwarding
> are enabled for the path leading to the device.
>
> Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
> Suggested-by: Kevin Tian <kevin.tian@intel.com>
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> Tested-by: Tony Zhu <tony.zhu@intel.com>
> ---
> drivers/pci/ats.c | 3 +++
> 1 file changed, 3 insertions(+)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason