[igt-dev] [PATCH i-g-t 2/3] tests/prime_mmap: Iterate over dma-buf supported memory regions
Gwan-gyeong Mun
gwan-gyeong.mun at intel.com
Wed Mar 2 11:54:16 UTC 2022
This is the result of igt at prime_mmap tests
- mmap fix for lmem kernel patch was applied:
https://patchwork.freedesktop.org/series/100737/
- Tested HW: DG1,
IGT-Version: 1.26-g9458a2f1 (x86_64) (Linux: 5.17.0-rc5-drm-tip-test+
x86_64)
Starting subtest: test_correct
Starting dynamic subtest: test_correct-smem
Dynamic subtest test_correct-smem: SUCCESS (0.036s)
Starting dynamic subtest: test_correct-lmem0
Dynamic subtest test_correct-lmem0: SUCCESS (0.146s)
Subtest test_correct: SUCCESS (0.182s)
Starting subtest: test_map_unmap
Starting dynamic subtest: test_map_unmap-smem
Dynamic subtest test_map_unmap-smem: SUCCESS (0.036s)
Starting dynamic subtest: test_map_unmap-lmem0
Dynamic subtest test_map_unmap-lmem0: SUCCESS (0.142s)
Subtest test_map_unmap: SUCCESS (0.178s)
Starting subtest: test_reprime
Starting dynamic subtest: test_reprime-smem
Dynamic subtest test_reprime-smem: SUCCESS (0.036s)
Starting dynamic subtest: test_reprime-lmem0
Dynamic subtest test_reprime-lmem0: SUCCESS (0.143s)
Subtest test_reprime: SUCCESS (0.179s)
Starting subtest: test_forked
Starting dynamic subtest: test_forked-smem
Dynamic subtest test_forked-smem: SUCCESS (0.048s)
Starting dynamic subtest: test_forked-lmem0
Dynamic subtest test_forked-lmem0: SUCCESS (0.154s)
Subtest test_forked: SUCCESS (0.202s)
Starting subtest: test_correct_cpu_write
Starting dynamic subtest: test_correct_cpu_write-smem
Dynamic subtest test_correct_cpu_write-smem: SUCCESS (0.000s)
Starting dynamic subtest: test_correct_cpu_write-lmem0
Dynamic subtest test_correct_cpu_write-lmem0: SUCCESS (0.000s)
Subtest test_correct_cpu_write: SUCCESS (0.001s)
Starting subtest: test_forked_cpu_write
Starting dynamic subtest: test_forked_cpu_write-smem
Dynamic subtest test_forked_cpu_write-smem: SUCCESS (0.012s)
Starting dynamic subtest: test_forked_cpu_write-lmem0
Dynamic subtest test_forked_cpu_write-lmem0: SUCCESS (0.012s)
Subtest test_forked_cpu_write: SUCCESS (0.024s)
Starting subtest: test_refcounting
Starting dynamic subtest: test_refcounting-smem
Dynamic subtest test_refcounting-smem: SUCCESS (0.037s)
Starting dynamic subtest: test_refcounting-lmem0
Dynamic subtest test_refcounting-lmem0: SUCCESS (0.145s)
Subtest test_refcounting: SUCCESS (0.181s)
Starting subtest: test_dup
Starting dynamic subtest: test_dup-smem
Dynamic subtest test_dup-smem: SUCCESS (0.036s)
Starting dynamic subtest: test_dup-lmem0
Dynamic subtest test_dup-lmem0: SUCCESS (0.142s)
Subtest test_dup: SUCCESS (0.179s)
Starting subtest: test_userptr
Starting dynamic subtest: test_userptr-smem
Dynamic subtest test_userptr-smem: SUCCESS (0.000s)
Subtest test_userptr: SUCCESS (0.000s)
Starting subtest: test_errors
Starting dynamic subtest: test_errors-smem
Dynamic subtest test_errors-smem: SUCCESS (0.110s)
Starting dynamic subtest: test_errors-lmem0
Dynamic subtest test_errors-lmem0: SUCCESS (0.437s)
Subtest test_errors: SUCCESS (0.547s)
Starting subtest: test_invalid_sync_flags
Starting dynamic subtest: test_invalid_sync_flags-smem
Dynamic subtest test_invalid_sync_flags-smem: SUCCESS (0.000s)
Starting dynamic subtest: test_invalid_sync_flags-lmem0
Dynamic subtest test_invalid_sync_flags-lmem0: SUCCESS (0.000s)
Subtest test_invalid_sync_flags: SUCCESS (0.000s)
Starting subtest: test_aperture_limit
Starting dynamic subtest: test_aperture_limit-smem
Dynamic subtest test_aperture_limit-smem: SUCCESS (7.086s)
Subtest test_aperture_limit: SUCCESS (7.086s)
On 3/2/22 1:49 PM, Gwan-gyeong Mun wrote:
> Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> Tested-by: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
>
> If the https://patchwork.freedesktop.org/series/100737/ patch (currently
> under review) is applied to the i915, you can see that the
> igt at prime_mmap test works normally in dg1.
>
> On 3/1/22 9:58 AM, Zbigniew Kempczyński wrote:
>> To avoid code duplication (prime_mmap_coherency uses similar code)
>> use helper function which returns dma-buf set of supported regions.
>>
>> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
>> Cc: Ashutosh Dixit <ashutosh.dixit at intel.com>
>> ---
>> tests/prime_mmap.c | 34 ++++++----------------------------
>> 1 file changed, 6 insertions(+), 28 deletions(-)
>>
>> diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
>> index e0cb9a25b..d53185ff1 100644
>> --- a/tests/prime_mmap.c
>> +++ b/tests/prime_mmap.c
>> @@ -483,31 +483,6 @@ test_aperture_limit(uint32_t region, int size)
>> gem_close(fd, handle2);
>> }
>> -static int
>> -check_for_dma_buf_mmap(struct igt_collection *set)
>> -{
>> - struct igt_collection *region;
>> - uint32_t reg;
>> - int dma_buf_fd;
>> - char *ptr;
>> - uint32_t handle;
>> - int ret = 1;
>> -
>> - for_each_combination(region, 1, set) {
>> - reg = igt_collection_get_value(region, 0);
>> - handle = gem_create_in_memory_regions(fd, BO_SIZE, reg);
>> -
>> - dma_buf_fd = prime_handle_to_fd(fd, handle);
>> - ptr = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);
>> - if (ptr != MAP_FAILED)
>> - ret = 0;
>> - munmap(ptr, BO_SIZE);
>> - gem_close(fd, handle);
>> - close(dma_buf_fd);
>> - }
>> - return ret;
>> -}
>> -
>> #define SKIP_LMEM (1 << 0)
>> #define SKIP_USERPTR (1 << 1)
>> @@ -527,7 +502,7 @@ static bool check_skip(uint32_t skip, uint32_t
>> region)
>> igt_main
>> {
>> - struct igt_collection *set, *regions;
>> + struct igt_collection *set, *regions, *dma_buf_set;
>> struct drm_i915_query_memory_regions *query_info;
>> struct {
>> const char *name;
>> @@ -560,13 +535,15 @@ igt_main
>> set = get_memory_region_set(query_info, I915_SYSTEM_MEMORY,
>> I915_DEVICE_MEMORY);
>> - igt_assert(check_for_dma_buf_mmap(set) == 0);
>> +
>> + dma_buf_set = get_dma_buf_mmap_supported_set(fd, set);
>> + igt_require_f(dma_buf_set, "No dma-buf region supported\n");
>> errno = 0;
>> }
>> for (i = 0; i < ARRAY_SIZE(tests); i++)
>> igt_subtest_with_dynamic(tests[i].name) {
>> - for_each_combination(regions, 1, set) {
>> + 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);
>> @@ -582,6 +559,7 @@ igt_main
>> igt_fixture {
>> free(query_info);
>> igt_collection_destroy(set);
>> + igt_collection_destroy(dma_buf_set);
>> close(fd);
>> }
>> }
>>
More information about the igt-dev
mailing list