[PATCH i-g-t v2 63/66] tests/xe_eudebug_online: Add subtests w/o long running mode

Christoph Manszewski christoph.manszewski at intel.com
Tue Jul 30 11:45:20 UTC 2024


Currently all our online tests use vms in long running mode. Add 3 subtests
without it to have some coverage for non-lr mode.

Signed-off-by: Christoph Manszewski <christoph.manszewski at intel.com>
Cc: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
---
 tests/intel/xe_eudebug_online.c | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/tests/intel/xe_eudebug_online.c b/tests/intel/xe_eudebug_online.c
index 96129c06a..864591a34 100644
--- a/tests/intel/xe_eudebug_online.c
+++ b/tests/intel/xe_eudebug_online.c
@@ -28,6 +28,7 @@
 #define SHADER_N_NOOP_BREAKPOINT	(1 << 5)
 #define SHADER_CACHING_SRAM		(1 << 6)
 #define SHADER_CACHING_VRAM		(1 << 7)
+#define DISABLE_LONG_RUNNING_MODE	(1 << 8)
 #define TRIGGER_RESUME_SINGLE_WALK	(1 << 25)
 #define TRIGGER_RESUME_PARALLEL_WALK	(1 << 26)
 #define TRIGGER_RECONNECT		(1 << 27)
@@ -1003,12 +1004,16 @@ static void run_online_client(struct xe_eudebug_client *c)
 							   DRM_XE_DEBUG_METADATA_PROGRAM_MODULE,
 							   2 * sizeof(*metadata), metadata[1]);
 
-	create.vm_id = xe_eudebug_client_vm_create(c, fd, DRM_XE_VM_CREATE_FLAG_LR_MODE, 0);
+	if (c->flags & DISABLE_LONG_RUNNING_MODE)
+		create.vm_id = xe_eudebug_client_vm_create(c, fd, 0, 0);
+	else
+		create.vm_id = xe_eudebug_client_vm_create(c, fd, DRM_XE_VM_CREATE_FLAG_LR_MODE, 0);
+
 	xe_eudebug_client_exec_queue_create(c, fd, &create);
 
 	ibb = xe_bb_create_on_offset(fd, create.exec_queue_id, create.vm_id,
 				     bb_offset, bb_size);
-	intel_bb_set_lr_mode(ibb, true);
+	intel_bb_set_lr_mode(ibb, !(c->flags & DISABLE_LONG_RUNNING_MODE));
 
 	sip = get_sip(fd, c->flags);
 	shader = get_shader(fd, c->flags);
@@ -1251,6 +1256,10 @@ static void ufence_ack_trigger(struct xe_eudebug_debugger *d,
  *	Check whether KMD sends attention events
  *	for workload in debug mode stopped on breakpoint.
  *
+ * SUBTEST: basic-breakpoint-no-lr
+ * Description:
+ *	Same as basic-breakpoint but without vm in long running mode.
+ *
  * SUBTEST: breakpoint-not-in-debug-mode
  * Description:
  *	Check whether KMD resets the GPU when it spots an attention
@@ -1337,6 +1346,10 @@ static void test_reset_with_attention_online(int fd, struct drm_xe_engine_class_
  *	interrupts all threads, checks whether attention event came, and
  *	resumes stopped threads back.
  *
+ * SUBTEST: interrupt-all-no-lr
+ * Description:
+ *	Same as interrupt-all but without vm in long running mode.
+ *
  * SUBTEST: interrupt-all-set-breakpoint
  * Description:
  *	Schedules EU workload which should last about a few seconds, then
@@ -1557,6 +1570,10 @@ static void eu_attention_debugger_detach_trigger(struct xe_eudebug_debugger *d,
  *	interrupts all threads and detaches debugger when attention is
  *	raised. The test checks if KMD resets the workload when there's
  *	no debugger attached and does the event playback on discovery.
+ *
+ * SUBTEST: interrupt-reconnect-no-lr
+ * Description:
+ *	Same as interrupt-reconnect but without vm in long running mode.
  */
 static void test_interrupt_reconnect(int fd, struct drm_xe_engine_class_instance *hwe, int flags)
 {
@@ -1792,6 +1809,9 @@ igt_main
 	test_gt_render_or_compute("basic-breakpoint", fd, hwe)
 		test_basic_online(fd, hwe, SHADER_BREAKPOINT);
 
+	test_gt_render_or_compute("basic-breakpoint-no-lr", fd, hwe)
+		test_basic_online(fd, hwe, SHADER_BREAKPOINT | DISABLE_LONG_RUNNING_MODE);
+
 	test_gt_render_or_compute("breakpoint-not-in-debug-mode", fd, hwe)
 		test_basic_online(fd, hwe, SHADER_BREAKPOINT | DISABLE_DEBUG_MODE);
 
@@ -1807,6 +1827,9 @@ igt_main
 	test_gt_render_or_compute("interrupt-all", fd, hwe)
 		test_interrupt_all(fd, hwe, SHADER_LOOP);
 
+	test_gt_render_or_compute("interrupt-all-no-lr", fd, hwe)
+		test_interrupt_all(fd, hwe, SHADER_LOOP | DISABLE_LONG_RUNNING_MODE);
+
 	test_gt_render_or_compute("interrupt-all-set-breakpoint", fd, hwe)
 		test_interrupt_all(fd, hwe, SHADER_LOOP | TRIGGER_RESUME_SET_BP);
 
@@ -1819,6 +1842,10 @@ igt_main
 	test_gt_render_or_compute("interrupt-reconnect", fd, hwe)
 		test_interrupt_reconnect(fd, hwe, SHADER_LOOP | TRIGGER_RECONNECT);
 
+	test_gt_render_or_compute("interrupt-reconnect-no-lr", fd, hwe)
+		test_interrupt_reconnect(fd, hwe, SHADER_LOOP | TRIGGER_RECONNECT |
+					 DISABLE_LONG_RUNNING_MODE);
+
 	test_gt_render_or_compute("single-step", fd, hwe)
 		test_single_step(fd, hwe, SHADER_SINGLE_STEP | SIP_SINGLE_STEP |
 				 TRIGGER_RESUME_PARALLEL_WALK);
-- 
2.34.1



More information about the igt-dev mailing list