[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