Re: [PATCH v3 1/1] PCI: Add translated request only flag for pci_enable_pasid()

From: Baolu Lu
Date: Wed Feb 01 2023 - 01:31:38 EST


On 2023/2/1 8:14, Bjorn Helgaas wrote:
The AMD iommu driver allocates a new domain (called v2 domain) for the
"v2 domain" needs to be something greppable -- an identifier,
filename, etc.
The code reads,

2052 if (iommu_feature(iommu, FEATURE_GT) &&
2053 iommu_feature(iommu, FEATURE_PPR)) {
2054 iommu->is_iommu_v2 = true;

So, how about

..The AMD GPU has a private interface to its own AMD IOMMU, which could
be detected by the FEATURE_GT && FEATURE_PPR features. The AMD iommu
driver allocates a special domain for the GPU device ..
Where is this special domain allocated? I think the above tests for
*IOMMU* features (I assume "GTSup: Guest translations supported" and
"PPRSup: Peripheral page request support" based on the AMD IOMMU
spec). It doesn't test that this is a GPU.

From the discussion, my understanding is that the IOMMU is a GPU
dedicated IOMMU. The translated-request-only feature is enumerated
through the IOMMU feature bits. However, I am not familiar with AMD
architecture. AMD guys may have a better explanation.

This change doesn't feel safe for all possible devices that have a
PASID Capability because we don't know whether they*always* use
Translated addresses with PASID TLPs.

I tend to think you are right. :-)

Best regards,
baolu