This series introduces a new usage model for the v2 page table, where it can be used to implement support for DMA-API by adopting the generic IO page table framework.
One of the target usecases is to support nested IO page tables where the guest uses the guest IO page table (v2) for translating GVA to GPA, and the hypervisor uses the host I/O page table (v1) for translating GPA to SPA. This is a pre-requisite for supporting the new HW-assisted vIOMMU presented at the KVM Forum 2020. https://static.sched.com/hosted_files/kvmforum2020/26/vIOMMU%20KVM%20Forum%202020.pdf The following components are introduced in this series: - Part 1 (patch 1-4 and 6) Refactor the current IOMMU page table code to adopt the generic IO page table framework, and add AMD IOMMU Guest (v2) page table management code. - Part 2 (patch 5) Add support for the AMD IOMMU Guest IO Protection feature (GIOV) where requests from the I/O device without a PASID are treated as if they have PASID of 0. - Part 3 (patch 7) Introduce new "amd_iommu_pgtable" command-line to allow users to select the mode of operation (v1 or v2). See AMD I/O Virtualization Technology Specification for more detail. http://www.amd.com/system/files/TechDocs/48882_IOMMU_3.05_PUB.pdf Note: This patchset is based on top of "iommu/amd: Add multiple PCI segments support" patchset [1]. [1] https://lore.kernel.org/linux-iommu/20220511072141.15485-1-vasant.he...@amd.com/T/#t Thanks, Vasant Changes from RFC -> v1: - Addressed review comments from Joerg - Reimplemented v2 page table RFC patchset : https://lore.kernel.org/linux-iommu/20210312090411.6030-1-suravee.suthikulpa...@amd.com/T/#t Suravee Suthikulpanit (5): iommu/amd: Refactor amd_iommu_domain_enable_v2 iommu/amd: Update sanity check when enable PRI/ATS iommu/amd: Add support for Guest IO protection iommu/amd: Add support for using AMD IOMMU v2 page table for DMA-API iommu/amd: Introduce amd_iommu_pgtable command-line option Vasant Hegde (2): iommu/amd: Fix sparse warning iommu/amd: Initial support for AMD IOMMU v2 page table .../admin-guide/kernel-parameters.txt | 6 + drivers/iommu/amd/Makefile | 2 +- drivers/iommu/amd/amd_iommu_types.h | 8 +- drivers/iommu/amd/init.c | 27 +- drivers/iommu/amd/io_pgtable_v2.c | 407 ++++++++++++++++++ drivers/iommu/amd/iommu.c | 90 ++-- drivers/iommu/io-pgtable.c | 1 + include/linux/io-pgtable.h | 2 + 8 files changed, 516 insertions(+), 27 deletions(-) create mode 100644 drivers/iommu/amd/io_pgtable_v2.c -- 2.27.0 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu