From: Matt Roper <matthew.d.roper@intel.com>
To: Tejas Upadhyay <tejas.upadhyay@intel.com>
Cc: <igt-dev@lists.freedesktop.org>, <intel-xe@lists.freedesktop.org>,
Matthew Brost <matthew.brost@intel.com>
Subject: Re: [PATCH V2 i-g-t] tests/xe_exec_threads: Make hang tests reset domain aware
Date: Tue, 2 Apr 2024 12:40:17 -0700 [thread overview]
Message-ID: <20240402194017.GJ6574@mdroper-desk1.amr.corp.intel.com> (raw)
In-Reply-To: <20240402122223.643413-1-tejas.upadhyay@intel.com>
On Tue, Apr 02, 2024 at 05:52:23PM +0530, Tejas Upadhyay wrote:
> RCS/CCS are dependent engines as they are sharing reset
> domain. Whenever there is reset from CCS, all the exec queues
> running on RCS are victimised mainly on Lunarlake.
>
> Lets skip parallel execution on CCS with RCS.
I haven't really looked at this specific test in detail, but based on
your explanation here, you're also going to run into problems with
multiple CCS engines since they all share the same reset. You won't see
that on platforms like LNL that only have a single CCS, but platforms
like PVC, ATS-M, DG2, etc. can all have multiple CCS where a reset on
one kills anything running on the others.
Matt
>
> It helps in fixing following errors:
> 1. Test assertion failure function test_legacy_mode, file, Failed assertion: data[i].data == 0xc0ffee
>
> 2.Test assertion failure function xe_exec, file ../lib/xe/xe_ioctl.c, Failed assertion: __xe_exec(fd, exec) == 0, error: -125 != 0
>
> Signed-off-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
> ---
> tests/intel/xe_exec_threads.c | 26 +++++++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/tests/intel/xe_exec_threads.c b/tests/intel/xe_exec_threads.c
> index 8083980f9..31af61dc9 100644
> --- a/tests/intel/xe_exec_threads.c
> +++ b/tests/intel/xe_exec_threads.c
> @@ -710,6 +710,17 @@ static void *thread(void *data)
> return NULL;
> }
>
> +static bool is_engine_contexts_victimized(int fd, unsigned int flags)
> +{
> + if (!IS_LUNARLAKE(intel_get_drm_devid(fd)))
> + return false;
> +
> + if (flags & HANG)
> + return true;
> +
> + return false;
> +}
> +
> /**
> * SUBTEST: threads-%s
> * Description: Run threads %arg[1] test with multi threads
> @@ -955,9 +966,13 @@ static void threads(int fd, int flags)
> bool go = false;
> int n_threads = 0;
> int gt;
> + bool has_rcs = false;
>
> - xe_for_each_engine(fd, hwe)
> + xe_for_each_engine(fd, hwe) {
> + if (hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER)
> + has_rcs = true;
> ++n_engines;
> + }
>
> if (flags & BALANCER) {
> xe_for_each_gt(fd, gt)
> @@ -990,6 +1005,15 @@ static void threads(int fd, int flags)
> }
>
> xe_for_each_engine(fd, hwe) {
> + /* RCS/CCS sharing reset domain hence dependent engines.
> + * When CCS is doing reset, all the contexts of RCS are
> + * victimized, so skip the compute engine avoiding
> + * parallel execution with RCS
> + */
> + if (has_rcs && hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE &&
> + is_engine_contexts_victimized(fd, flags))
> + continue;
> +
> threads_data[i].mutex = &mutex;
> threads_data[i].cond = &cond;
> #define ADDRESS_SHIFT 39
> --
> 2.25.1
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
next prev parent reply other threads:[~2024-04-02 19:40 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-02 12:22 [PATCH V2 i-g-t] tests/xe_exec_threads: Make hang tests reset domain aware Tejas Upadhyay
2024-04-02 12:15 ` ✗ CI.Patch_applied: failure for " Patchwork
2024-04-02 19:40 ` Matt Roper [this message]
2024-04-02 20:55 ` [PATCH V2 i-g-t] " Lucas De Marchi
2024-04-03 5:35 ` Upadhyay, Tejas
2024-04-04 23:22 ` John Harrison
2024-04-04 23:45 ` John Harrison
2024-04-05 4:42 ` Upadhyay, Tejas
2024-04-05 4:47 ` Upadhyay, Tejas
2024-04-05 18:15 ` John Harrison
2024-04-05 23:33 ` Matthew Brost
2024-04-05 23:42 ` John Harrison
2024-04-08 5:23 ` Upadhyay, Tejas
2024-04-08 12:00 ` Upadhyay, Tejas
2024-04-10 19:22 ` John Harrison
2024-04-11 5:12 ` Upadhyay, Tejas
2024-04-11 5:37 ` Upadhyay, Tejas
2024-04-23 13:06 ` Upadhyay, Tejas
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=20240402194017.GJ6574@mdroper-desk1.amr.corp.intel.com \
--to=matthew.d.roper@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.brost@intel.com \
--cc=tejas.upadhyay@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