[PATCH i-g-t v2 63/66] tests/xe_eudebug_online: Add subtests w/o long running mode
Piatkowski, Dominik Karol
dominik.karol.piatkowski at intel.com
Thu Aug 1 09:09:11 UTC 2024
Reviewed-by: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
> -----Original Message-----
> From: Manszewski, Christoph <christoph.manszewski at intel.com>
> Sent: Tuesday, July 30, 2024 1:45 PM
> To: igt-dev at lists.freedesktop.org
> Cc: Kempczynski, Zbigniew <zbigniew.kempczynski at intel.com>; Kamil
> Konieczny <kamil.konieczny at linux.intel.com>; Grzegorzek, Dominik
> <dominik.grzegorzek at intel.com>; Patelczyk, Maciej
> <maciej.patelczyk at intel.com>; Piatkowski, Dominik Karol
> <dominik.karol.piatkowski at intel.com>; Sikora, Pawel
> <pawel.sikora at intel.com>; Hajda, Andrzej <andrzej.hajda at intel.com>;
> Kolanupaka Naveena <kolanupaka.naveena at intel.com>; Kuoppala, Mika
> <mika.kuoppala at intel.com>; Mun, Gwan-gyeong <gwan-
> gyeong.mun at intel.com>
> Subject: [PATCH i-g-t v2 63/66] tests/xe_eudebug_online: Add subtests w/o
> long running mode
>
> 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