Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: nishit.sharma@intel.com
To: igt-dev@lists.freedesktop.org, kamil.konieczny@intel.com
Subject: [PATCH v2 7/9] tests/intel/xe_exec_reset: add gt-stress-reset-mixed-engine-usage subtest
Date: Tue, 18 Aug 2026 04:08:43 +0000	[thread overview]
Message-ID: <20260818040845.548727-8-nishit.sharma@intel.com> (raw)
In-Reply-To: <20260818040845.548727-1-nishit.sharma@intel.com>

From: Nishit Sharma <nishit.sharma@intel.com>

This extends concurrent reset/submission stress to mixed engine class
traffic while preserving default single-engine behavior for existing
subtests. It is combined with rapid reset mode as requested to increase
reset/submit overlap pressure.

Signed-off-by: Nishit Sharma <nishit.sharma@intel.com>
---
 tests/intel/xe_exec_reset.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/tests/intel/xe_exec_reset.c b/tests/intel/xe_exec_reset.c
index 8fac53180..d818173c2 100644
--- a/tests/intel/xe_exec_reset.c
+++ b/tests/intel/xe_exec_reset.c
@@ -138,6 +138,7 @@ static void test_spin(int fd, struct drm_xe_engine_class_instance *eci,
 #define INVALIDATE_BO_STRESS		(0x1 << 18)
 #define RAPID_RESET_STRESS		(0x1 << 19)
 #define DESTROY_VM_CTX_STRESS		(0x1 << 20)
+#define MIXED_ENGINE_STRESS		(0x1 << 21)
 
 /**
  * SUBTEST: %s-cat-error
@@ -653,6 +654,7 @@ struct gt_thread_data {
 	pthread_cond_t *cond;
 	int fd;
 	int gt;
+	int id;
 	int *go;
 	int *exit;
 	int *num_reset;
@@ -693,6 +695,22 @@ static void bo_ctx_create(int fd, int gt, uint64_t addr, size_t bo_size,
 	xe_vm_bind_sync(fd, *vm, *bo, 0, addr, bo_size);
 }
 
+static void fill_mixed_engine(struct gt_thread_data *t, int iter,
+			      struct drm_xe_engine_class_instance *instance)
+{
+	const uint16_t classes[] = {
+		DRM_XE_ENGINE_CLASS_COPY,
+		DRM_XE_ENGINE_CLASS_RENDER,
+		DRM_XE_ENGINE_CLASS_COMPUTE,
+		DRM_XE_ENGINE_CLASS_VIDEO_DECODE,
+		DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE,
+	};
+
+	instance->gt_id = t->gt;
+	instance->engine_instance = 0;
+	instance->engine_class = classes[(iter + t->id) % ARRAY_SIZE(classes)];
+}
+
 static void pressure_bo_create(int fd, uint32_t vm, int gt,
 			       uint32_t *bos, int *count)
 {
@@ -765,6 +783,9 @@ static void submit_jobs(struct gt_thread_data *t)
 		};
 		int ret;
 
+		if (t->flags & MIXED_ENGINE_STRESS)
+			fill_mixed_engine(t, i, &instance);
+
 		/* GuC IDs can get exhausted */
 		ret = __xe_exec_queue_create(fd, vm, 1, 1, &instance, 0, &exec.exec_queue_id);
 		if (ret) {
@@ -853,6 +874,10 @@ static void *gt_reset_thread(void *data)
  * Description: Stress concurrent GT resets and job submissions while destroying and recreating VM context
  * Test category: stress test
  *
+ * SUBTEST: gt-stress-reset-mixed-engine-usage
+ * Description: Stress concurrent GT resets and mixed-engine job submissions
+ * Test category: stress test
+ *
  */
 static void
 gt_reset(int fd, int gt, int n_threads, int n_sec, unsigned int flags)
@@ -874,6 +899,7 @@ gt_reset(int fd, int gt, int n_threads, int n_sec, unsigned int flags)
 		threads[i].cond = &cond;
 		threads[i].fd = fd;
 		threads[i].gt = gt;
+		threads[i].id = i;
 		threads[i].flags = flags;
 		threads[i].go = &go;
 		threads[i].exit = &exit;
@@ -1076,6 +1102,7 @@ int igt_main()
 		{ "reset-bo-invalidation", INVALIDATE_BO_STRESS },
 		{ "reset-rapid-cycle", RAPID_RESET_STRESS },
 		{ "reset-destroy-vm-context", DESTROY_VM_CTX_STRESS },
+		{ "reset-mixed-engine-usage", MIXED_ENGINE_STRESS | RAPID_RESET_STRESS },
 		{ NULL },
 	};
 	int gt;
-- 
2.43.0


  parent reply	other threads:[~2026-08-18  4:13 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-18  4:08 [PATCH v2 0/9] extend GT reset stress coverage nishit.sharma
2026-08-18  4:08 ` [PATCH v2 1/9] tests/intel/xe_exec_reset: Add concurrent GT reset submit stress test nishit.sharma
2026-08-18  4:08 ` [PATCH v2 2/9] tests/intel/xe_exec_reset: add sync concurrent reset submit subtest nishit.sharma
2026-08-18  4:08 ` [PATCH v2 3/9] tests/intel/xe_exec_reset: add gt-stress-reset-memory-pressure subtest nishit.sharma
2026-08-18  4:08 ` [PATCH v2 4/9] tests/intel/xe_exec_reset: add gt-stress-reset-bo-invalidation subtest nishit.sharma
2026-08-18  4:08 ` [PATCH v2 5/9] tests/intel/xe_exec_reset: add gt-stress-reset-rapid-cycle subtest nishit.sharma
2026-08-18  4:08 ` [PATCH v2 6/9] tests/intel/xe_exec_reset: add gt-stress-reset-destroy-vm-context subtest nishit.sharma
2026-08-18  4:08 ` nishit.sharma [this message]
2026-08-18  4:08 ` [PATCH v2 8/9] tests/intel/xe_exec_reset: add gt-stress-reset-pm-transition subtest nishit.sharma
2026-08-18  4:08 ` [PATCH v2 9/9] tests/intel/xe_exec_reset: add gt-stress-reset-engine-hang subtest nishit.sharma
2026-08-18  4:50 ` ✓ Xe.CI.BAT: success for extend GT reset stress coverage (rev2) Patchwork
2026-08-18  5:04 ` ✓ i915.CI.BAT: " Patchwork
2026-08-18  5:56 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-08-18 16:04 ` ✗ i915.CI.Full: " 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=20260818040845.548727-8-nishit.sharma@intel.com \
    --to=nishit.sharma@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=kamil.konieczny@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