[igt-dev] [PATCH] tests/ xe_exec_compute_mode: Increase fence timeout for simulation env
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Mon Jun 19 05:52:31 UTC 2023
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/
--
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