All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xin Wang <x.wang@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Xin Wang <x.wang@intel.com>, Daniel Charles <daniel.charles@intel.com>
Subject: [PATCH] tests/intel: only check multi-LRC support for parallel submission paths
Date: Wed,  8 Apr 2026 00:14:16 -0700	[thread overview]
Message-ID: <20260408071416.808087-1-x.wang@intel.com> (raw)

The previous commit "tests/intel: skip or adjust tests for non-multi-LRC
engine classes" unconditionally guarded balancer test functions with
xe_engine_class_supports_multi_lrc(), causing virtual (non-parallel)
subtests to be skipped on engine classes that have multiple placements
but do not support multi-LRC.

Only parallel submission requires multi-LRC support; virtual balancer
tests should still run whenever num_placements >= 2 regardless of
multi-LRC capability.

Fix this by making the multi-LRC check conditional on the PARALLEL flag
in test_exec(), test_cm(), test_balancer(), and utilization_multi().
Remove the check entirely from test_all_active() which is a pure virtual
test.  In xe_exec_threads, move the filter into the caller threads() so
that VIRTUAL threads are still spawned while PARALLEL threads are skipped
for non-multi-LRC classes.

Fixes: 09d91fcf2961 ("tests/intel: skip or adjust tests for non-multi-LRC engine classes")
Cc: Daniel Charles <daniel.charles@intel.com>
Signed-off-by: Xin Wang <x.wang@intel.com>
---
 tests/intel/xe_drm_fdinfo.c    | 3 ++-
 tests/intel/xe_exec_balancer.c | 8 +++++---
 tests/intel/xe_exec_reset.c    | 3 ++-
 tests/intel/xe_exec_threads.c  | 7 ++++++-
 4 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/tests/intel/xe_drm_fdinfo.c b/tests/intel/xe_drm_fdinfo.c
index 3c113ed5d..8449a4f17 100644
--- a/tests/intel/xe_drm_fdinfo.c
+++ b/tests/intel/xe_drm_fdinfo.c
@@ -673,7 +673,8 @@ utilization_multi(int fd, int gt, int class, unsigned int flags)
 	igt_assert(virtual ^ parallel);
 
 	num_placements = xe_gt_fill_engines_by_class(fd, gt, class, eci);
-	if (num_placements < 2 || !xe_engine_class_supports_multi_lrc(fd, class))
+	if (num_placements < 2 ||
+	    (parallel && !xe_engine_class_supports_multi_lrc(fd, class)))
 		return;
 
 	igt_debug("Target class: %s\n", engine_map[class]);
diff --git a/tests/intel/xe_exec_balancer.c b/tests/intel/xe_exec_balancer.c
index 3c6ec45f1..4aaef7666 100644
--- a/tests/intel/xe_exec_balancer.c
+++ b/tests/intel/xe_exec_balancer.c
@@ -57,7 +57,7 @@ static bool test_all_active(int fd, int gt, int class)
 	int i, num_placements;
 
 	num_placements = xe_gt_fill_engines_by_class(fd, gt, class, eci);
-	if (num_placements < 2 || !xe_engine_class_supports_multi_lrc(fd, class))
+	if (num_placements < 2)
 		return false;
 
 	vm = xe_vm_create(fd, 0, 0);
@@ -187,7 +187,8 @@ test_exec(int fd, int gt, int class, int n_exec_queues, int n_execs,
 	igt_assert_lte(n_exec_queues, MAX_N_EXEC_QUEUES);
 
 	num_placements = xe_gt_fill_engines_by_class(fd, gt, class, eci);
-	if (num_placements < 2 || !xe_engine_class_supports_multi_lrc(fd, class))
+	if (num_placements < 2 ||
+	    ((flags & PARALLEL) && !xe_engine_class_supports_multi_lrc(fd, class)))
 		return false;
 
 	vm = xe_vm_create(fd, 0, 0);
@@ -402,7 +403,8 @@ test_cm(int fd, int gt, int class, int n_exec_queues, int n_execs,
 	igt_assert_lte(n_exec_queues, MAX_N_EXEC_QUEUES);
 
 	num_placements = xe_gt_fill_engines_by_class(fd, gt, class, eci);
-	if (num_placements < 2 || !xe_engine_class_supports_multi_lrc(fd, class))
+	if (num_placements < 2 ||
+	    ((flags & PARALLEL) && !xe_engine_class_supports_multi_lrc(fd, class)))
 		return false;
 
 	vm = xe_vm_create(fd, DRM_XE_VM_CREATE_FLAG_LR_MODE, 0);
diff --git a/tests/intel/xe_exec_reset.c b/tests/intel/xe_exec_reset.c
index 95191139d..66580ea44 100644
--- a/tests/intel/xe_exec_reset.c
+++ b/tests/intel/xe_exec_reset.c
@@ -184,7 +184,8 @@ test_balancer(int fd, int gt, int class, int n_exec_queues, int n_execs,
 		fd = drm_open_driver(DRIVER_XE);
 
 	num_placements = xe_gt_fill_engines_by_class(fd, gt, class, eci);
-	if (num_placements < 2 || !xe_engine_class_supports_multi_lrc(fd, class))
+	if (num_placements < 2 ||
+	    ((flags & PARALLEL) && !xe_engine_class_supports_multi_lrc(fd, class)))
 		return;
 
 	vm = xe_vm_create(fd, 0, 0);
diff --git a/tests/intel/xe_exec_threads.c b/tests/intel/xe_exec_threads.c
index 7b8100c5b..40a6c0c6d 100644
--- a/tests/intel/xe_exec_threads.c
+++ b/tests/intel/xe_exec_threads.c
@@ -85,7 +85,6 @@ test_balancer(int fd, int gt, uint32_t vm, uint64_t addr, uint64_t userptr,
 
 	num_placements = xe_gt_fill_engines_by_class(fd, gt, class, eci);
 	igt_assert_lt(1, num_placements);
-	igt_assert(xe_engine_class_supports_multi_lrc(fd, class));
 
 	bo_size = sizeof(*data) * n_execs;
 	bo_size = xe_bb_size(fd, bo_size);
@@ -1211,6 +1210,12 @@ static void threads(int fd, int flags)
 					continue;
 
 				while (*data_flags >= 0) {
+					if ((*data_flags & PARALLEL) &&
+					    !xe_engine_class_supports_multi_lrc(fd, class)) {
+						data_flags++;
+						continue;
+					}
+
 					threads_data[i].mutex = &mutex;
 					threads_data[i].cond = &cond;
 					if (flags & SHARED_VM)
-- 
2.43.0


             reply	other threads:[~2026-04-08  7:14 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-08  7:14 Xin Wang [this message]
2026-04-08 17:27 ` tests/intel: only check multi-LRC support for parallel submission paths Daniel Charles
2026-04-09 13:41   ` Kamil Konieczny
2026-04-09  8:14 ` ✓ Xe.CI.BAT: success for " Patchwork
2026-04-09  8:31 ` ✓ i915.CI.BAT: " Patchwork
2026-04-09  9:25 ` ✓ Xe.CI.FULL: " Patchwork
2026-04-09 20:43 ` ✗ i915.CI.Full: failure " 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=20260408071416.808087-1-x.wang@intel.com \
    --to=x.wang@intel.com \
    --cc=daniel.charles@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /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.