RE: [PATCH 0/6] Make set_dev_pasid op supportting domain replacement

Tian, Kevin
2024-07-10T08:24:21Z

> From: Liu, Yi L <yi.l.liu@intel.com>
> Sent: Friday, June 28, 2024 4:56 PM
>
> This splits the preparation works of the iommu and the Intel iommu driver
> out from the iommufd pasid attach/replace series. [1]
>
> To support domain replacement, the definition of the set_dev_pasid op
> needs to be enhanced. Meanwhile, the existing set_dev_pasid callbacks
> should be extended as well to suit the new definition.
>
> pasid attach/replace is mandatory on Intel VT-d given the PASID table
> locates in the physical address space hence must be managed by the kernel,
> both for supporting vSVA and coming SIOV. But it's optional on ARM/AMD
> which allow configuring the PASID/CD table either in host physical address
> space or nested on top of an GPA address space. This series only extends
> the Intel iommu driver as the minimal requirement.

Looks above is only within VFIO/IOMMUFD context (copied from the old
series). But this series is all in IOMMU and pasid attach is certainly not
optional for SVA on all platforms. this needs to be revised.

>
> This series first prepares the Intel iommu set_dev_pasid op for the new
> definition, adds the missing set_dev_pasid support for nested domain, and
> in the end enhances the definition of set_dev_pasid op. The ARM and AMD
> set_dev_pasid callbacks is extended to fail if the caller tries to do domain
> replacement to meet the new definition of set_dev_pasid op.
>
> This series is on top of Baolu's paging domain alloc refactor, where his
> code can be found at [2].
>
> [1] https://lore.kernel.org/linux-iommu/20240412081516.31168-1-
> yi.l.liu@intel.com/
> [2] https://github.com/LuBaolu/intel-iommu/commits/vtd-paging-domain-
> refactor-v1
>
> Regards,
> Yi Liu
>
> Lu Baolu (1):
> iommu/vt-d: Add set_dev_pasid callback for nested domain
>
> Yi Liu (5):
> iommu: Pass old domain to set_dev_pasid op
> iommu/vt-d: Move intel_drain_pasid_prq() into
> intel_pasid_tear_down_entry()
> iommu/vt-d: Make helpers support modifying present pasid entry
> iommu/vt-d: Make intel_iommu_set_dev_pasid() to handle domain
> replacement
> iommu: Make set_dev_pasid op support domain replacement
>
> drivers/iommu/amd/amd_iommu.h | 3 +-
> drivers/iommu/amd/pasid.c | 6 +-
> .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 6 +-
> drivers/iommu/intel/debugfs.c | 2 +
> drivers/iommu/intel/iommu.c | 117 ++++++++++++------
> drivers/iommu/intel/iommu.h | 3 +
> drivers/iommu/intel/nested.c | 1 +
> drivers/iommu/intel/pasid.c | 46 +++----
> drivers/iommu/intel/pasid.h | 5 +-
> drivers/iommu/intel/svm.c | 9 +-
> drivers/iommu/iommu.c | 3 +-
> include/linux/iommu.h | 5 +-
> 12 files changed, 132 insertions(+), 74 deletions(-)
>
> --
> 2.34.1