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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox