[igt-dev] [PATCH] tests/ xe_exec_compute_mode: Increase fence timeout for simulation env

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Tue Jun 20 10:56:35 UTC 2023


On Tue, Jun 20, 2023 at 11:38:20AM +0200, Bommu, Krishnaiah wrote:
> 
> 
> > -----Original Message-----
> > From: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>
> > Sent: 19 June 2023 11:23
> > To: Bommu, Krishnaiah <krishnaiah.bommu at intel.com>
> > Cc: igt-dev at lists.freedesktop.org
> > Subject: Re: [igt-dev] [PATCH] tests/ xe_exec_compute_mode: Increase
> > fence timeout for simulation env
> > 
> > On Fri, Jun 16, 2023 at 04:35:19PM +0530, Bommu Krishnaiah wrote:
> > > Increase fence timeout to 100 seconds for simulation env.
> > > Value is determined based on experiments.
> > >
> > > Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu at intel.com>
> > > ---
> > >  tests/xe/xe_exec_compute_mode.c | 20 ++++++++++++++------
> > >  1 file changed, 14 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/tests/xe/xe_exec_compute_mode.c
> > > b/tests/xe/xe_exec_compute_mode.c index 68519399..aba35c19 100644
> > > --- a/tests/xe/xe_exec_compute_mode.c
> > > +++ b/tests/xe/xe_exec_compute_mode.c
> > > @@ -113,6 +113,7 @@ test_exec(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > >  	} *data;
> > >  	int i, j, b;
> > >  	int map_fd = -1;
> > > +	int64_t fence_timeout;
> > >
> > >  	igt_assert(n_engines <= MAX_N_ENGINES);
> > >
> > > @@ -184,7 +185,12 @@ test_exec(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > >  					 to_user_pointer(data), addr,
> > >  					 bo_size, sync, 1);
> > >  #define ONE_SEC	1000
> > > -	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL,
> > ONE_SEC);
> > > +#define HUNDRED_SEC	100000
> > 
> > Be aware we're going to switch to nanoseconds as a timeout, more info here:
> > 
> > https://patchwork.freedesktop.org/series/118670/
> > 
> @Kempczynski, Zbigniew should I need to wait until https://patchwork.freedesktop.org/series/118670/ is merged, or should I need to merge with fixme

Don't use fixme tag. At the moment you can merge your change, but we will
need fix all user fence wait usages in all igts when this uapi change will
land.

--
Zbigniew

--
> 
> Regards,
> Krishna.
> 
> > --
> > Zbigniew
> > 
> > > +
> > > +	fence_timeout = igt_run_in_simulation() ? HUNDRED_SEC :
> > ONE_SEC;
> > > +
> > > +	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL,
> > > +		       fence_timeout);
> > >  	data[0].vm_sync = 0;
> > >
> > >  	for (i = 0; i < n_execs; i++) {
> > > @@ -210,7 +216,7 @@ test_exec(int fd, struct
> > > drm_xe_engine_class_instance *eci,
> > >
> > >  		if (flags & REBIND && i + 1 != n_execs) {
> > >  			xe_wait_ufence(fd, &data[i].exec_sync,
> > USER_FENCE_VALUE,
> > > -				       NULL, ONE_SEC);
> > > +				       NULL, fence_timeout);
> > >  			xe_vm_unbind_async(fd, vm, bind_engines[e], 0,
> > >  					   addr, bo_size, NULL, 0);
> > >
> > > @@ -226,7 +232,7 @@ test_exec(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > >  							 addr, bo_size, sync,
> > >  							 1);
> > >  			xe_wait_ufence(fd, &data[0].vm_sync,
> > USER_FENCE_VALUE,
> > > -				       NULL, ONE_SEC);
> > > +				       NULL, fence_timeout);
> > >  			data[0].vm_sync = 0;
> > >  		}
> > >
> > > @@ -239,7 +245,8 @@ test_exec(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > >  				 * an invalidate.
> > >  				 */
> > >  				xe_wait_ufence(fd, &data[i].exec_sync,
> > > -					       USER_FENCE_VALUE, NULL,
> > ONE_SEC);
> > > +					       USER_FENCE_VALUE, NULL,
> > > +					       fence_timeout);
> > >  				igt_assert_eq(data[i].data, 0xc0ffee);
> > >  			} else if (i * 2 != n_execs) {
> > >  				/*
> > > @@ -269,7 +276,7 @@ test_exec(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > >  	j = flags & INVALIDATE ? n_execs - 1 : 0;
> > >  	for (i = j; i < n_execs; i++)
> > >  		xe_wait_ufence(fd, &data[i].exec_sync,
> > USER_FENCE_VALUE, NULL,
> > > -			       ONE_SEC);
> > > +			       fence_timeout);
> > >
> > >  	/* Wait for all execs to complete */
> > >  	if (flags & INVALIDATE)
> > > @@ -278,7 +285,8 @@ test_exec(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > >  	sync[0].addr = to_user_pointer(&data[0].vm_sync);
> > >  	xe_vm_unbind_async(fd, vm, bind_engines[0], 0, addr, bo_size,
> > >  			   sync, 1);
> > > -	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL,
> > ONE_SEC);
> > > +	xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, NULL,
> > > +		       fence_timeout);
> > >
> > >  	for (i = j; i < n_execs; i++)
> > >  		igt_assert_eq(data[i].data, 0xc0ffee);
> > > --
> > > 2.25.1
> > >


More information about the igt-dev mailing list