Test IOMMU mapping the BAR mmaps created during vfio_pci_device_setup(). All IOMMU modes are tested: vfio_type1 variants are expected to succeed, while non-type1 modes are expected to fail. iommufd compat mode can be updated to expect success once kernel support lands; native iommufd will not support mapping vaddrs backed by MMIO (it will support dma-buf based MMIO mapping instead).
To: Alex Williamson <[email protected]> To: David Matlack <[email protected]> To: Shuah Khan <[email protected]> Cc: Peter Xu <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: Jason Gunthorpe <[email protected]> Changes in v2: - Split into patch series - Factor out mmap_aligned() for vaddr alignment - Align BAR mmaps to improve hugepage IOMMU mapping efficiency - Centralize MODE_* string definitions - Add is_power_of_2() assertion for BAR size - Simplify align calculation to min(size, 1G) - Add map_bar_misaligned test case - Link to v1: https://lore.kernel.org/all/[email protected] Signed-off-by: Alex Mastro <[email protected]> --- Alex Mastro (3): vfio: selftests: Centralize IOMMU mode name definitions vfio: selftests: Align BAR mmaps for efficient IOMMU mapping vfio: selftests: Add vfio_dma_mapping_mmio_test tools/testing/selftests/vfio/Makefile | 1 + tools/testing/selftests/vfio/lib/include/libvfio.h | 9 ++ .../selftests/vfio/lib/include/libvfio/iommu.h | 6 + tools/testing/selftests/vfio/lib/iommu.c | 12 +- tools/testing/selftests/vfio/lib/libvfio.c | 25 ++++ tools/testing/selftests/vfio/lib/vfio_pci_device.c | 24 +++- .../selftests/vfio/vfio_dma_mapping_mmio_test.c | 144 +++++++++++++++++++++ .../testing/selftests/vfio/vfio_dma_mapping_test.c | 2 +- 8 files changed, 215 insertions(+), 8 deletions(-) --- base-commit: d721f52e31553a848e0e9947ca15a49c5674aef3 change-id: 20260112-map-mmio-test-b4e4c2d917a9 Best regards, -- Alex Mastro <[email protected]>

