From: Daniel Charles <daniel.charles@intel.com>
To: Xin Wang <x.wang@intel.com>, <igt-dev@lists.freedesktop.org>
Subject: Re: tests/intel: only check multi-LRC support for parallel submission paths
Date: Wed, 8 Apr 2026 10:27:11 -0700 [thread overview]
Message-ID: <e526ec30-e249-45c1-9261-e3040b2d7b2b@intel.com> (raw)
In-Reply-To: <20260408071416.808087-1-x.wang@intel.com>
On 4/8/2026 12:14 AM, Xin Wang wrote:
> 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)
Reviewed-by: Daniel Charles <daniel.charles@intel.com>
next prev parent reply other threads:[~2026-04-08 17:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-08 7:14 [PATCH] tests/intel: only check multi-LRC support for parallel submission paths Xin Wang
2026-04-08 17:27 ` Daniel Charles [this message]
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=e526ec30-e249-45c1-9261-e3040b2d7b2b@intel.com \
--to=daniel.charles@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=x.wang@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.