[igt-dev] [PATCH i-g-t] tests/intel: Do not error on -ECANCELED in xe_vm tests
Kamil Konieczny
kamil.konieczny at linux.intel.com
Thu Nov 23 08:46:17 UTC 2023
Hi Jonathan,
On 2023-11-16 at 15:43:12 -0800, Jonathan Cavitt wrote:
> In the hammer class of unbind tests in xe_vm, a thread is created that
> submits jobs to an exec queue initialized on a VM page that is later
> unbound. Because of the unbind, a job is timing out and marking the
> exec queue as "banned", which causes all subsequent job submissions to
> report as -ECANCELED (-125).
>
> This is expected behavior. The test should not fail when this is the
> case, so use __xe_exec instead of the error-sensitive xe_exec in
> hammer_thread, ignoring -ECANCELED and catching all other errors
> manually.
>
> Suggested-by: Matthew Brost <matthew.brost at intel.com>
> Signed-off-by: Jonathan Cavitt <jonathan.cavitt at intel.com>
Thank you for explanation,
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/intel/xe_vm.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tests/intel/xe_vm.c b/tests/intel/xe_vm.c
> index f1ccd6c21d..d16bb45892 100644
> --- a/tests/intel/xe_vm.c
> +++ b/tests/intel/xe_vm.c
> @@ -1118,6 +1118,7 @@ static void *hammer_thread(void *tdata)
> uint32_t exec_queue = xe_exec_queue_create(t->fd, t->vm, t->eci, 0);
> int b;
> int i = 0;
> + int err = 0;
----------- ^^^
You do not need setting it to zero here, as err get value
in both if-else paths. It is minor and I will merge it with this.
Regards,
Kamil
>
> sync[0].handle = syncobj_create(t->fd, 0);
> pthread_barrier_wait(t->barrier);
> @@ -1140,14 +1141,15 @@ static void *hammer_thread(void *tdata)
> exec.address = batch_addr;
> if (i % 32) {
> exec.num_syncs = 0;
> - xe_exec(t->fd, &exec);
> + err = __xe_exec(t->fd, &exec);
> } else {
> exec.num_syncs = 1;
> - xe_exec(t->fd, &exec);
> + err = __xe_exec(t->fd, &exec);
> igt_assert(syncobj_wait(t->fd, &sync[0].handle, 1,
> INT64_MAX, 0, NULL));
> syncobj_reset(t->fd, &sync[0].handle, 1);
> }
> + igt_assert(!err || err == -ECANCELED);
> ++i;
> }
>
> --
> 2.25.1
>
More information about the igt-dev
mailing list