[PATCH] vfio: selftests: Drop IOMMU mapping size assertions for VFIO_TYPE1_IOMMU

David Matlack posted 1 patch 3 weeks, 2 days ago
tools/testing/selftests/vfio/vfio_dma_mapping_test.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
[PATCH] vfio: selftests: Drop IOMMU mapping size assertions for VFIO_TYPE1_IOMMU
Posted by David Matlack 3 weeks, 2 days ago
Drop the assertions about IOMMU mappings sizes for VFIO_TYPE1_IOMMU
modes (both the VFIO mode and the iommufd compatibility mode). These
assertions fail when CONFIG_IOMMUFD_VFIO_CONTAINER is enabled, since
iommufd compatibility mode provides different huge page behavior than
VFIO for VFIO_TYPE1_IOMMU. VFIO_TYPE1_IOMMU is an old enough interface
that it's not worth changing the behavior of VFIO and iommufd to match
nor care about the IOMMU mapping sizes.

Cc: Jason Gunthorpe <jgg@ziepe.ca>
Link: https://lore.kernel.org/kvm/20260109143830.176dc279@shazbot.org/
Signed-off-by: David Matlack <dmatlack@google.com>
---
 tools/testing/selftests/vfio/vfio_dma_mapping_test.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/vfio/vfio_dma_mapping_test.c b/tools/testing/selftests/vfio/vfio_dma_mapping_test.c
index 5397822c3dd4..ecadd0e6b61b 100644
--- a/tools/testing/selftests/vfio/vfio_dma_mapping_test.c
+++ b/tools/testing/selftests/vfio/vfio_dma_mapping_test.c
@@ -162,12 +162,8 @@ TEST_F(vfio_dma_mapping_test, dma_map_unmap)
 	if (rc == -EOPNOTSUPP)
 		goto unmap;
 
-	/*
-	 * IOMMUFD compatibility-mode does not support huge mappings when
-	 * using VFIO_TYPE1_IOMMU.
-	 */
-	if (!strcmp(variant->iommu_mode, "iommufd_compat_type1"))
-		mapping_size = SZ_4K;
+	if (self->iommu->mode->iommu_type == VFIO_TYPE1_IOMMU)
+		goto unmap;
 
 	ASSERT_EQ(0, rc);
 	printf("Found IOMMU mappings for IOVA 0x%lx:\n", region.iova);

base-commit: d721f52e31553a848e0e9947ca15a49c5674aef3
-- 
2.52.0.457.g6b5491de43-goog
Re: [PATCH] vfio: selftests: Drop IOMMU mapping size assertions for VFIO_TYPE1_IOMMU
Posted by Alex Williamson 2 weeks, 4 days ago
On Wed, 14 Jan 2026 21:12:52 +0000
David Matlack <dmatlack@google.com> wrote:

> Drop the assertions about IOMMU mappings sizes for VFIO_TYPE1_IOMMU
> modes (both the VFIO mode and the iommufd compatibility mode). These
> assertions fail when CONFIG_IOMMUFD_VFIO_CONTAINER is enabled, since
> iommufd compatibility mode provides different huge page behavior than
> VFIO for VFIO_TYPE1_IOMMU. VFIO_TYPE1_IOMMU is an old enough interface
> that it's not worth changing the behavior of VFIO and iommufd to match
> nor care about the IOMMU mapping sizes.
> 
> Cc: Jason Gunthorpe <jgg@ziepe.ca>
> Link: https://lore.kernel.org/kvm/20260109143830.176dc279@shazbot.org/
> Signed-off-by: David Matlack <dmatlack@google.com>
> ---
>  tools/testing/selftests/vfio/vfio_dma_mapping_test.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)

Applied to vfio next branch for v6.20/7.0.  Thanks,

Alex

> diff --git a/tools/testing/selftests/vfio/vfio_dma_mapping_test.c b/tools/testing/selftests/vfio/vfio_dma_mapping_test.c
> index 5397822c3dd4..ecadd0e6b61b 100644
> --- a/tools/testing/selftests/vfio/vfio_dma_mapping_test.c
> +++ b/tools/testing/selftests/vfio/vfio_dma_mapping_test.c
> @@ -162,12 +162,8 @@ TEST_F(vfio_dma_mapping_test, dma_map_unmap)
>  	if (rc == -EOPNOTSUPP)
>  		goto unmap;
>  
> -	/*
> -	 * IOMMUFD compatibility-mode does not support huge mappings when
> -	 * using VFIO_TYPE1_IOMMU.
> -	 */
> -	if (!strcmp(variant->iommu_mode, "iommufd_compat_type1"))
> -		mapping_size = SZ_4K;
> +	if (self->iommu->mode->iommu_type == VFIO_TYPE1_IOMMU)
> +		goto unmap;
>  
>  	ASSERT_EQ(0, rc);
>  	printf("Found IOMMU mappings for IOVA 0x%lx:\n", region.iova);
> 
> base-commit: d721f52e31553a848e0e9947ca15a49c5674aef3