[igt-dev] [PATCH i-g-t 2/2] tests/xe_*: Use nanoseconds instead jiffies in wait user fence

Matthew Brost matthew.brost at intel.com
Tue Jun 27 16:48:32 UTC 2023


On Tue, Jun 27, 2023 at 06:14:07PM +0200, Zbigniew Kempczyński wrote:
> Before kernel change will land we need to merge change in igt first
> otherwise all tests which waits in wait user fence are prone to
> get the timeout and fail.
> 
> One user fence wait which couldn't be touched in this patch
> is xe_exec_threads.c:vm_async_ops_err_thread() which uses
> BASICALLY_FOREVER = 0xffffffffffff as a timeout. New uapi allows
> passing negative to select unlimited timeout (MAX_SCHEDULE_TIMEOUT)
> but until merging kernel change this cannot be used here. There's
> not a big problem as current timeout is far in the future what's
> enough to keep test semantics.
> 
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> ---
>  tests/xe/xe_evict.c             | 2 +-
>  tests/xe/xe_exec_balancer.c     | 2 +-
>  tests/xe/xe_exec_compute_mode.c | 4 ++--
>  tests/xe/xe_exec_fault_mode.c   | 2 +-
>  tests/xe/xe_exec_reset.c        | 2 +-
>  tests/xe/xe_exec_threads.c      | 4 ++--
>  6 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/xe/xe_evict.c b/tests/xe/xe_evict.c
> index 2c39d43908..34be54d7ec 100644
> --- a/tests/xe/xe_evict.c
> +++ b/tests/xe/xe_evict.c
> @@ -313,7 +313,7 @@ test_evict_cm(int fd, struct drm_xe_engine_class_instance *eci,
>  				xe_vm_bind_async(fd, vm, bind_engines[0], __bo,
>  						 0, addr, bo_size, sync, 1);
>  			}
> -#define TWENTY_SEC	20000
> +#define TWENTY_SEC	MS_TO_NS(20000)
>  			xe_wait_ufence(fd, &data[i].vm_sync, USER_FENCE_VALUE,
>  				       NULL, TWENTY_SEC);
>  		}
> diff --git a/tests/xe/xe_exec_balancer.c b/tests/xe/xe_exec_balancer.c
> index 83a7b77ba5..040caaca3e 100644
> --- a/tests/xe/xe_exec_balancer.c
> +++ b/tests/xe/xe_exec_balancer.c
> @@ -479,7 +479,7 @@ test_cm(int fd, int gt, int class, int n_engines, int n_execs,
>  		xe_vm_bind_userptr_async(fd, vm, 0, to_user_pointer(data), addr,
>  					 bo_size, sync, 1);
>  
> -#define ONE_SEC	1000
> +#define ONE_SEC	MS_TO_NS(1000)
>  	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL, ONE_SEC);
>  	data[0].vm_sync = 0;
>  
> diff --git a/tests/xe/xe_exec_compute_mode.c b/tests/xe/xe_exec_compute_mode.c
> index e2c9d0f383..61747787d1 100644
> --- a/tests/xe/xe_exec_compute_mode.c
> +++ b/tests/xe/xe_exec_compute_mode.c
> @@ -181,8 +181,8 @@ test_exec(int fd, struct drm_xe_engine_class_instance *eci,
>  		xe_vm_bind_userptr_async(fd, vm, bind_engines[0],
>  					 to_user_pointer(data), addr,
>  					 bo_size, sync, 1);
> -#define ONE_SEC	1000
> -#define HUNDRED_SEC	100000
> +#define ONE_SEC	MS_TO_NS(1000)
> +#define HUNDRED_SEC	MS_TO_NS(100000)
>  
>  	fence_timeout = igt_run_in_simulation() ? HUNDRED_SEC : ONE_SEC;
>  
> diff --git a/tests/xe/xe_exec_fault_mode.c b/tests/xe/xe_exec_fault_mode.c
> index 6d9e64868b..f42860caf4 100644
> --- a/tests/xe/xe_exec_fault_mode.c
> +++ b/tests/xe/xe_exec_fault_mode.c
> @@ -190,7 +190,7 @@ test_exec(int fd, struct drm_xe_engine_class_instance *eci,
>  						 bo_size, sync, 1);
>  	}
>  
> -#define ONE_SEC	1000
> +#define ONE_SEC	MS_TO_NS(1000)
>  	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL, ONE_SEC);
>  	data[0].vm_sync = 0;
>  
> diff --git a/tests/xe/xe_exec_reset.c b/tests/xe/xe_exec_reset.c
> index 30b0548bfe..b526afffee 100644
> --- a/tests/xe/xe_exec_reset.c
> +++ b/tests/xe/xe_exec_reset.c
> @@ -588,7 +588,7 @@ test_compute_mode(int fd, struct drm_xe_engine_class_instance *eci,
>  	sync[0].addr = to_user_pointer(&data[0].vm_sync);
>  	xe_vm_bind_async(fd, vm, 0, bo, 0, addr, bo_size, sync, 1);
>  
> -#define THREE_SEC	3000
> +#define THREE_SEC	MS_TO_NS(3000)
>  	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL, THREE_SEC);
>  	data[0].vm_sync = 0;
>  
> diff --git a/tests/xe/xe_exec_threads.c b/tests/xe/xe_exec_threads.c
> index aac2450eec..5f7d3bfcdf 100644
> --- a/tests/xe/xe_exec_threads.c
> +++ b/tests/xe/xe_exec_threads.c
> @@ -335,8 +335,8 @@ test_compute_mode(int fd, uint32_t vm, uint64_t addr, uint64_t userptr,
>  	else
>  		xe_vm_bind_userptr_async(fd, vm, 0, to_user_pointer(data), addr,
>  					 bo_size, sync, 1);
> -#define THREE_SEC	3000
> -#define THIRTY_SEC	30000
> +#define THREE_SEC	MS_TO_NS(3000)
> +#define THIRTY_SEC	MS_TO_NS(30000)
>  
>  	fence_timeout = igt_run_in_simulation() ? THIRTY_SEC : THREE_SEC;
>  
> -- 
> 2.34.1
> 


More information about the igt-dev mailing list