From: Stuart Summers <stuart.summers@intel.com>
Cc: igt-dev@lists.freedesktop.org,
niranjana.vishwanathapura@intel.com,
Stuart Summers <stuart.summers@intel.com>
Subject: [PATCH i-g-t 3/4] tests/intel/xe_exec_reset: Add checks for hanging queue wait_ufence return
Date: Mon, 27 Apr 2026 21:20:32 +0000 [thread overview]
Message-ID: <20260427212034.18486-4-stuart.summers@intel.com> (raw)
In-Reply-To: <20260427212034.18486-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 | 17 ++++++++++++-----
2 files changed, 18 insertions(+), 7 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 bc1a74fa3..1c9275804 100644
--- a/tests/intel/xe_exec_reset.c
+++ b/tests/intel/xe_exec_reset.c
@@ -462,26 +462,33 @@ 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);
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
xe_wait_ufence(fd, &data[0].vm_sync, USER_FENCE_VALUE, 0, 3 * NSEC_PER_SEC);
- if (!(flags & GT_RESET)) {
- for (i = 1; i < n_execs; i++)
+ if (!(flags & (GT_RESET))) {
+ 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-27 21:21 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-27 21:20 [PATCH i-g-t 0/4] Add test coverage for multi queue reset Stuart Summers
2026-04-27 21:20 ` [PATCH i-g-t 1/4] tests/intel/xe_exec_reset: Remove CANCEL logic for CM variants Stuart Summers
2026-04-27 21:20 ` [PATCH i-g-t 2/4] tests/intel/xe_exec_reset: Add a comment about return for syncobj wait Stuart Summers
2026-04-27 21:20 ` Stuart Summers [this message]
2026-04-27 21:20 ` [PATCH i-g-t 4/4] tests/intel/xe_exec_reset: Add multi queue subtests Stuart Summers
2026-04-28 1:52 ` ✓ i915.CI.BAT: success for Add test coverage for multi queue reset (rev2) Patchwork
2026-04-28 2:26 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-04-28 21:13 ` Summers, Stuart
2026-04-28 9:38 ` ✓ i915.CI.Full: success " Patchwork
2026-04-28 10:36 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-04-28 21:12 ` Summers, Stuart
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=20260427212034.18486-4-stuart.summers@intel.com \
--to=stuart.summers@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=niranjana.vishwanathapura@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.