]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iommufd/selftest: Add tests for <= u8 bitmap sizes
authorJoao Martins <joao.m.martins@oracle.com>
Thu, 27 Jun 2024 11:00:57 +0000 (12:00 +0100)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 28 Jun 2024 16:12:22 +0000 (13:12 -0300)
Add more tests for bitmaps smaller than or equal to an u8, though skip the
tests if the IOVA buffer size is smaller than the mock page size.

Link: https://lore.kernel.org/r/20240627110105.62325-4-joao.m.martins@oracle.com
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Tested-by: Matt Ochs <mochs@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
tools/testing/selftests/iommu/iommufd.c

index 0b04d782a19fc700b1589586834506e8d242ad1c..61189215e1ab76983c15b0c4cc5623c3599a4037 100644 (file)
@@ -1727,6 +1727,12 @@ FIXTURE_SETUP(iommufd_dirty_tracking)
        void *vrc;
        int rc;
 
+       if (variant->buffer_size < MOCK_PAGE_SIZE) {
+               SKIP(return,
+                    "Skipping buffer_size=%lu, less than MOCK_PAGE_SIZE=%lu",
+                    variant->buffer_size, MOCK_PAGE_SIZE);
+       }
+
        self->fd = open("/dev/iommu", O_RDWR);
        ASSERT_NE(-1, self->fd);
 
@@ -1779,6 +1785,18 @@ FIXTURE_TEARDOWN(iommufd_dirty_tracking)
        teardown_iommufd(self->fd, _metadata);
 }
 
+FIXTURE_VARIANT_ADD(iommufd_dirty_tracking, domain_dirty8k)
+{
+       /* half of an u8 index bitmap */
+       .buffer_size = 8UL * 1024UL,
+};
+
+FIXTURE_VARIANT_ADD(iommufd_dirty_tracking, domain_dirty16k)
+{
+       /* one u8 index bitmap */
+       .buffer_size = 16UL * 1024UL,
+};
+
 FIXTURE_VARIANT_ADD(iommufd_dirty_tracking, domain_dirty128k)
 {
        /* one u32 index bitmap */