From: Stuart Summers <stuart.summers@intel.com>
Cc: apoorva.singh@intel.com, igt-dev@lists.freedesktop.org,
niranjana.vishwanathapura@intel.com, daniel.charles@intel.com,
fei.yang@intel.com, katarzyna.piecielska@intel.com,
priyanka.dandamudi@intel.com, kamil.konieczny@linux.intel.com,
Stuart Summers <stuart.summers@intel.com>
Subject: [PATCH i-g-t v2 2/3] tests/intel/xe_exec_reset: Add checks for hanging queue wait_ufence return
Date: Mon, 13 Apr 2026 21:19:26 +0000 [thread overview]
Message-ID: <20260413211928.54789-2-stuart.summers@intel.com> (raw)
In-Reply-To: <20260413211928.54789-1-stuart.summers@intel.com>
There is a 3 second wait user fence timeout for the compute mode
variants of this test. Instead of just skipping the wait altogether,
let's make sure this does in fact return -ETIME as expected there.
Also add the i == 0 cases for legacy and compute path for the actual
data checks to stay consistent and to be a little more explicit
about what we're checking there.
This also let's us add a little more detail to the cases in some
planned changes around hanging multi queue secondary queues.
Signed-off-by: Stuart Summers <stuart.summers@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
---
lib/xe/xe_legacy.c | 8 ++++++--
tests/intel/xe_exec_reset.c | 15 +++++++++++----
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/lib/xe/xe_legacy.c b/lib/xe/xe_legacy.c
index 6aeddc578..3371a91ac 100644
--- a/lib/xe/xe_legacy.c
+++ b/lib/xe/xe_legacy.c
@@ -230,9 +230,13 @@ xe_legacy_test_mode(int fd, struct drm_xe_engine_class_instance *eci,
igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
if (!use_capture_mode && !(flags & (GT_RESET | CANCEL | COMPRESSION))) {
- for (i = flags & LONG_SPIN ? n_exec_queues : 1;
- i < n_execs + extra_execs; i++)
+ for (i = flags & LONG_SPIN ? n_exec_queues : 0;
+ i < n_execs + extra_execs; i++) {
+ if (!i)
+ continue;
+
igt_assert_eq(data[i].data, 0xc0ffee);
+ }
}
syncobj_destroy(fd, sync[0].handle);
diff --git a/tests/intel/xe_exec_reset.c b/tests/intel/xe_exec_reset.c
index 66580ea44..8139af25a 100644
--- a/tests/intel/xe_exec_reset.c
+++ b/tests/intel/xe_exec_reset.c
@@ -462,17 +462,20 @@ test_compute_mode(int fd, struct drm_xe_engine_class_instance *eci,
return;
}
- for (i = 1; i < n_execs; i++) {
+ for (i = 0; i < n_execs; i++) {
int64_t timeout = 3 * NSEC_PER_SEC;
int err;
err = __xe_wait_ufence(fd, &data[i].exec_sync, USER_FENCE_VALUE,
exec_queues[i % n_exec_queues], &timeout);
- if (flags & GT_RESET || flags & CAT_ERROR)
+ if (!i) {
+ igt_assert(err == -ETIME || err == -EIO);
+ } else if (flags & GT_RESET || flags & CAT_ERROR) {
/* exec races with reset: may return -EIO or complete */
igt_assert(err == -EIO || !err);
- else
+ } else {
igt_assert_eq(err, 0);
+ }
}
sync[0].addr = to_user_pointer(&data[0].vm_sync);
@@ -480,8 +483,12 @@ test_compute_mode(int fd, struct drm_xe_engine_class_instance *eci,
xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, 0, 3 * NSEC_PER_SEC);
if (!(flags & (GT_RESET | CANCEL))) {
- for (i = 1; i < n_execs; i++)
+ for (i = 0; i < n_execs; i++) {
+ if (!i)
+ continue;
+
igt_assert_eq(data[i].data, 0xc0ffee);
+ }
}
for (i = 0; i < n_exec_queues; i++)
--
2.43.0
next prev parent reply other threads:[~2026-04-13 21:19 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-13 21:19 [PATCH i-g-t v2 1/3] tests/intel/xe_exec_reset: Add a comment about return for syncobj wait Stuart Summers
2026-04-13 21:19 ` Stuart Summers [this message]
2026-04-13 21:19 ` [PATCH i-g-t v2 3/3] tests/intel/xe_exec_reset: Add multi queue subtests Stuart Summers
2026-04-14 2:22 ` ✓ i915.CI.BAT: success for series starting with [i-g-t,v2,1/3] tests/intel/xe_exec_reset: Add a comment about return for syncobj wait Patchwork
2026-04-14 2:39 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-14 6:11 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-04-14 8:50 ` ✗ i915.CI.Full: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260413211928.54789-2-stuart.summers@intel.com \
--to=stuart.summers@intel.com \
--cc=apoorva.singh@intel.com \
--cc=daniel.charles@intel.com \
--cc=fei.yang@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=kamil.konieczny@linux.intel.com \
--cc=katarzyna.piecielska@intel.com \
--cc=niranjana.vishwanathapura@intel.com \
--cc=priyanka.dandamudi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox