Re: [PATCH] tests/intel/xe_exec_system_allocator: fix prefetch-change-attr and DONTNEED flag handling

Kamil Konieczny <[email protected]>
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <[email protected]>
Hi Nishit,
On 2026-08-18 at 14:29:56 +0000, [email protected] wrote:
> From: Nishit Sharma <[email protected]>
> 
> These changes fixes the prefetch-change-attr test flow so the intended
> prefetch and atomic-attribute transition execute in the correct path,
> and it also switches the skip-results condition to use the proper internal
> test flag (USE_MADV_DONTNEED) instead of the libc MADV_DONTNEED constant.
> Together, these updates remove dead-path behavior, make the intent explicit
> and improve reliability of the affected system-allocator IGT coverage
> across platforms.
> 
> Signed-off-by: Nishit Sharma <[email protected]>

These two fixes seems unrelated, please split them into two
separate patches. Also, can you find any work items on GitLab
which they resolves? If yes, please add Closes: tags.



Regards,
Kamil

> ---
>  tests/intel/xe_exec_system_allocator.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/intel/xe_exec_system_allocator.c b/tests/intel/xe_exec_system_allocator.c
> index 6ca53aa5f..305512dfd 100644
> --- a/tests/intel/xe_exec_system_allocator.c
> +++ b/tests/intel/xe_exec_system_allocator.c
> @@ -1395,6 +1395,9 @@ madvise_prefetch_op(int fd, uint32_t vm, uint64_t addr, size_t bo_size,
>  
>  		xe_vm_madvise_migrate_pages(fd, vm, to_user_pointer(data), bo_size / 2);
>  
> +		/* free 1st allocation in mem_attrs */
> +		free(mem_attrs);
> +
>  		mem_attrs = xe_vm_get_mem_attr_values_in_range(fd, vm, addr, bo_size, &num_ranges);
>  		if (!mem_attrs) {
>  			igt_info("Failed to get memory attributes\n");
> @@ -1426,13 +1429,14 @@ madvise_prefetch_op(int fd, uint32_t vm, uint64_t addr, size_t bo_size,
>  		if (!mem_attrs) {
>  			igt_info("Failed to get memory attributes\n");
>  			return;
> +		}
>  
>  		xe_vm_prefetch_async(fd, vm, 0, 0, addr, bo_size, NULL, 0,
>  				     DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC);
>  
>  		xe_vm_madvise_atomic_attr(fd, vm, to_user_pointer(data), bo_size,
>  					  DRM_XE_ATOMIC_DEVICE);
> -		}
> +
>  		free(mem_attrs);
>  	}
>  }
> @@ -2333,7 +2337,7 @@ test_compute(int fd, struct drm_xe_engine_class_instance *eci, size_t size,
>  	xe_wait_ufence(fd, &bo_sync->sync, USER_FENCE_VALUE, 0, FIVE_SEC);
>  
>  	env.loop_count = (flags & TOUCH_ONCE) ? 1 : env.array_size;
> -	env.skip_results_check = !(flags & ACCESS_DEVICE_HOST) || (flags & MADV_DONTNEED);
> +	env.skip_results_check = !(flags & ACCESS_DEVICE_HOST) || (flags & USE_MADV_DONTNEED);
>  	env.vm = vm;
>  
>  	read_gt_stats_snapshot(fd, eci, &stats_before);
> -- 
> 2.43.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.