Re: [PATCH v9 1/6] iommufd: Support a HWPT without an iommu driver for noiommu
From: Yi Liu
Date: Tue Jun 16 2026 - 01:52:58 EST
On 6/12/26 01:26, Jacob Pan wrote:
From: Jason Gunthorpe <jgg@xxxxxxxxxx>
Create just a little part of a real iommu driver, enough to
slot in under the dev_iommu_ops() and allow iommufd to call
domain_alloc_paging_flags() and fail everything else.
This allows explicitly creating a HWPT under an IOAS.
A new Kconfig option IOMMUFD_NOIOMMU is introduced to differentiate
from the VFIO group/container based noiommu mode.
Reviewed-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
Reviewed-by: Samiullah Khawaja <skhawaja@xxxxxxxxxx>
Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>
Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
Signed-off-by: Jacob Pan <jacob.pan@xxxxxxxxxxxxxxxxxxx>
---
V8:
- Guard vIOMMU and vDevice allocation paths for noiommu (Sashiko)
v7:
- Drain no-IOMMU generic-PT freelist (Sashiko)
- Import generic-PT IOMMU namespace (Sashiko)
v6: (Yi)
- Sort includes alphabetically (iommu.h after generic_pt/iommu.h)
- Fix comment: s/mock page table/SW-only page table/ to avoid confusion
with selftest mock
- Rewrite noiommu_amdv1_ops comment: explain why AMDV1 format is chosen
(multi-page size options), remove references to group-container mode distinction
v5:
- Use the new IOMMUFD_NOIOMMU Kconfig instead of VFIO_NOIOMMU
- Use consistent wording referring to VFIO noiommu mode (Kevin)
- Copyright date fix (Kevin)
v4:
- Make iommufd_noiommu_ops const
v3:
- Add comment to explain the design difference over the
legacy noiommu VFIO code.
---
drivers/iommu/iommufd/Kconfig | 12 +++
drivers/iommu/iommufd/Makefile | 1 +
drivers/iommu/iommufd/hw_pagetable.c | 19 ++++-
drivers/iommu/iommufd/hwpt_noiommu.c | 105 ++++++++++++++++++++++++
drivers/iommu/iommufd/iommufd_private.h | 12 +++
drivers/iommu/iommufd/main.c | 1 +
drivers/iommu/iommufd/viommu.c | 14 +++-
7 files changed, 158 insertions(+), 6 deletions(-)
create mode 100644 drivers/iommu/iommufd/hwpt_noiommu.c
Reviewed-by: Yi Liu <yi.l.liu@xxxxxxxxx>