[igt-dev] [PATCH i-g-t 1/3] tests/prime_mmap: Use batch sizes appropriate for regions
Kamil Konieczny
kamil.konieczny at linux.intel.com
Tue Sep 27 16:57:51 UTC 2022
On 2022-09-27 at 11:17:25 +0200, Zbigniew Kempczyński wrote:
> Stop using gem_get_batch_size() as it returns hardcoded values which
> makes confusion regarding minimum object size in different regions.
>
> Use real object size instead which is more suitable.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/prime_mmap.c | 59 ++++++++++++++++++++++------------------------
> 1 file changed, 28 insertions(+), 31 deletions(-)
>
> diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
> index d53185ff10..bc19f68c98 100644
> --- a/tests/prime_mmap.c
> +++ b/tests/prime_mmap.c
> @@ -81,13 +81,13 @@ fill_bo_cpu(char *ptr, size_t size)
> }
>
> static void
> -test_correct(uint32_t region, int size)
> +test_correct(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr1, *ptr2;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
>
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> @@ -110,13 +110,13 @@ test_correct(uint32_t region, int size)
> }
>
> static void
> -test_map_unmap(uint32_t region, int size)
> +test_map_unmap(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
>
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> @@ -139,13 +139,13 @@ test_map_unmap(uint32_t region, int size)
>
> /* prime and then unprime and then prime again the same handle */
> static void
> -test_reprime(uint32_t region, int size)
> +test_reprime(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
>
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> @@ -171,13 +171,13 @@ test_reprime(uint32_t region, int size)
>
> /* map from another process */
> static void
> -test_forked(uint32_t region, int size)
> +test_forked(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
>
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> @@ -197,13 +197,13 @@ test_forked(uint32_t region, int size)
>
> /* test simple CPU write */
> static void
> -test_correct_cpu_write(uint32_t region, int size)
> +test_correct_cpu_write(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
>
> dma_buf_fd = prime_handle_to_fd_for_mmap(fd, handle);
>
> @@ -227,13 +227,13 @@ test_correct_cpu_write(uint32_t region, int size)
>
> /* map from another process and then write using CPU */
> static void
> -test_forked_cpu_write(uint32_t region, int size)
> +test_forked_cpu_write(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
>
> dma_buf_fd = prime_handle_to_fd_for_mmap(fd, handle);
>
> @@ -255,13 +255,13 @@ test_forked_cpu_write(uint32_t region, int size)
> }
>
> static void
> -test_refcounting(uint32_t region, int size)
> +test_refcounting(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
>
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> @@ -278,13 +278,13 @@ test_refcounting(uint32_t region, int size)
>
> /* dup before mmap */
> static void
> -test_dup(uint32_t region, int size)
> +test_dup(uint32_t region, uint64_t size)
> {
> int dma_buf_fd;
> char *ptr;
> uint32_t handle;
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
>
> dma_buf_fd = dup(prime_handle_to_fd(fd, handle));
> @@ -331,7 +331,7 @@ static bool has_userptr(void)
>
> /* test for mmap(dma_buf_export(userptr)) */
> static void
> -test_userptr(uint32_t region, int size)
> +test_userptr(uint32_t region, uint64_t size)
> {
> int ret, dma_buf_fd;
> void *ptr;
> @@ -365,7 +365,7 @@ free_userptr:
> }
>
> static void
> -test_errors(uint32_t region, int size)
> +test_errors(uint32_t region, uint64_t size)
> {
> int i, dma_buf_fd;
> char *ptr;
> @@ -374,7 +374,7 @@ test_errors(uint32_t region, int size)
> DRM_RDWR - 1, DRM_RDWR + 1};
>
> /* Test for invalid flags */
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> for (i = 0; i < ARRAY_SIZE(invalid_flags); i++) {
> prime_handle_to_fd_no_assert(handle, invalid_flags[i], &dma_buf_fd);
> igt_assert_eq(errno, EINVAL);
> @@ -383,7 +383,7 @@ test_errors(uint32_t region, int size)
> gem_close(fd, handle);
>
> /* Close gem object before priming */
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
> gem_close(fd, handle);
> prime_handle_to_fd_no_assert(handle, DRM_CLOEXEC, &dma_buf_fd);
> @@ -391,7 +391,7 @@ test_errors(uint32_t region, int size)
> errno = 0;
>
> /* close fd before mapping */
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> igt_assert(errno == 0);
> @@ -402,7 +402,7 @@ test_errors(uint32_t region, int size)
> gem_close(fd, handle);
>
> /* Map too big */
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> fill_bo(handle, size);
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> igt_assert(errno == 0);
> @@ -413,7 +413,7 @@ test_errors(uint32_t region, int size)
> gem_close(fd, handle);
>
> /* Overlapping the end of the buffer */
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> igt_assert(errno == 0);
> ptr = mmap(NULL, size, PROT_READ, MAP_SHARED, dma_buf_fd, size / 2);
> @@ -425,7 +425,7 @@ test_errors(uint32_t region, int size)
>
> /* Test for invalid flags on sync ioctl */
> static void
> -test_invalid_sync_flags(uint32_t region, int size)
> +test_invalid_sync_flags(uint32_t region, uint64_t size)
> {
> int i, dma_buf_fd;
> uint32_t handle;
> @@ -435,7 +435,7 @@ test_invalid_sync_flags(uint32_t region, int size)
> LOCAL_DMA_BUF_SYNC_RW + 1,
> LOCAL_DMA_BUF_SYNC_VALID_FLAGS_MASK + 1};
>
> - handle = gem_create_in_memory_regions(fd, size, region);
> + igt_assert(__gem_create_in_memory_regions(fd, &handle, &size, region) == 0);
> dma_buf_fd = prime_handle_to_fd(fd, handle);
> for (i = 0; i < sizeof(invalid_flags) / sizeof(invalid_flags[0]); i++) {
> memset(&sync, 0, sizeof(sync));
> @@ -448,7 +448,7 @@ test_invalid_sync_flags(uint32_t region, int size)
> }
>
> static void
> -test_aperture_limit(uint32_t region, int size)
> +test_aperture_limit(uint32_t region, uint64_t size)
> {
> int dma_buf_fd1, dma_buf_fd2;
> char *ptr1, *ptr2;
> @@ -506,7 +506,7 @@ igt_main
> struct drm_i915_query_memory_regions *query_info;
> struct {
> const char *name;
> - void (*fn)(uint32_t, int);
> + void (*fn)(uint32_t, uint64_t);
> uint32_t skip;
> } tests[] = {
> { "test_correct", test_correct },
> @@ -524,7 +524,6 @@ igt_main
> };
> uint32_t region;
> char *ext;
> - int size;
> int i;
>
> igt_fixture {
> @@ -545,13 +544,11 @@ igt_main
> igt_subtest_with_dynamic(tests[i].name) {
> for_each_combination(regions, 1, dma_buf_set) {
> region = igt_collection_get_value(regions, 0);
> - size = gem_get_batch_size(fd, MEMORY_TYPE_FROM_REGION(region));
> - size = max(size, BO_SIZE);
> if (check_skip(tests[i].skip, region))
> continue;
> ext = memregion_dynamic_subtest_name(regions);
> igt_dynamic_f("%s-%s", tests[i].name, ext)
> - tests[i].fn(region, size);
> + tests[i].fn(region, BO_SIZE);
> free(ext);
> }
> }
> --
> 2.34.1
>
More information about the igt-dev
mailing list