+ linuxppc-dev

On 03/07/26 8:58 am, Narayana Murty N wrote:
This RFC adds PowerPC sPAPR TCE v2 support to VFIO selftests.

The series adds a selftest IOMMU mode for the legacy VFIO container
backend, adds helpers for default and dynamic DMA windows, and exercises
the sPAPR DDW path through the DMA mapping tests.

sPAPR TCE v2 remains a legacy VFIO container backend. This series does
not add iommufd or VFIO cdev support for sPAPR.

The main points are
1. add VFIO_SELFTESTS_IOMMU_MODE for selecting a backend
2. add vfio_spapr_tce_v2_iommu as the PowerPC VFIO backend
3. preserve the platform default DMA window
4. create and tear down only selftest-created DDWs
5. prepare the DMA window before IOVA allocation
6. exercise DDW creation for hugepage DMA mappings
7. accept sPAPR-specific errno for invalid DMA ranges

Example:

VFIO_SELFTESTS_IOMMU_MODE=vfio_spapr_tce_v2_iommu
./vfio_dma_mapping_test <BDF>

Observed coverage includes anonymous mappings through the default window
and 2MB hugetlb mappings through a DDW. 1GB hugetlb mappings may skip when
the platform rejects the requested DDW characteristics.

Feedback is requested from the VFIO and PowerPC communities on:
1. whether the sPAPR TCE v2 helpers should remain in the common VFIO
selftest library or move into a sPAPR-specific test helper?
2. whether DDW setup through hugepage mappings is the right initial
coverage?
3. whether the sPAPR-specific overflow errno expectation should be
accepted, skipped, or hidden behind a backend helper?
4. whether PowerPC should generate only the sPAPR TCE v2 fixture variants,
or keep the generic IOMMU-mode matrix and skip unsupported modes.

TODO: vfio_spapr_tce_v1_iommu yet to be covered.

Narayana Murty N (6):
   selftests/vfio: allow selecting IOMMU backend from environment
   selftests/vfio: add sPAPR TCE v2 IOMMU mode
   selftests/vfio: add sPAPR TCE v2 DMA window helpers
   selftests/vfio: Exercise sPAPR DDW path for hugepage DMA mappings
   selftests/vfio: Accept sPAPR errno for DMA range overflow
   selftests/vfio: Enable VFIO selftests on ppc64 and ppc64le

  .../selftests/vfio/lib/include/libvfio.h      |   9 +
  .../vfio/lib/include/libvfio/iommu.h          |  26 ++
  tools/testing/selftests/vfio/lib/iommu.c      | 280 +++++++++++++++++-
  tools/testing/selftests/vfio/lib/libvfio.c    |  37 +++
  .../selftests/vfio/vfio_dma_mapping_test.c    |  30 ++
  .../selftests/vfio/vfio_pci_device_test.c     |   4 +-
  tools/testing/selftests/vfio/Makefile         |   2 +-
  7 files changed, 382 insertions(+), 6 deletions(-)



Reply via email to