[PATCH i-g-t v2 60/66] tests/xe_eudebug_online: What if user does not set debug mode?
Piatkowski, Dominik Karol
dominik.karol.piatkowski at intel.com
Mon Aug 5 07:55:50 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 60/66] tests/xe_eudebug_online: What if user does
> not set debug mode?
>
> From: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
>
> Implement test proving that workload is terminated if we hit exception
> without having exec queue in debug mode.
>
> Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
> Cc: Christoph Manszewski <christoph.manszewski at intel.com>
> ---
> tests/intel/xe_eudebug_online.c | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/tests/intel/xe_eudebug_online.c b/tests/intel/xe_eudebug_online.c
> index cabe2101e..8361b6db4 100644
> --- a/tests/intel/xe_eudebug_online.c
> +++ b/tests/intel/xe_eudebug_online.c
> @@ -24,6 +24,7 @@
> #define SHADER_LOOP (1 << 1)
> #define SHADER_SINGLE_STEP (1 << 2)
> #define SIP_SINGLE_STEP (1 << 3)
> +#define DISABLE_DEBUG_MODE (1 << 4)
> #define TRIGGER_RESUME_SINGLE_WALK (1 << 25)
> #define TRIGGER_RESUME_PARALLEL_WALK (1 << 26)
> #define TRIGGER_RECONNECT (1 << 27)
> @@ -813,7 +814,7 @@ static void run_online_client(struct
> xe_eudebug_client *c)
> .instances = to_user_pointer(&hwe),
> .width = 1,
> .num_placements = 1,
> - .extensions = to_user_pointer(&ext)
> + .extensions = c->flags & DISABLE_DEBUG_MODE ? 0 :
> +to_user_pointer(&ext)
> };
> struct dim_t w_dim = walker_dimensions(threads);
> struct dim_t s_dim = surface_dimensions(threads); @@ -880,7
> +881,8 @@ static void run_online_client(struct xe_eudebug_client *c)
> data->threads_count = count_canaries_neq(ptr, w_dim, 0);
> igt_assert_f(data->threads_count, "No canaries found, nothing
> executed?\n");
>
> - if (c->flags & SHADER_BREAKPOINT || c->flags &
> TRIGGER_RESUME_SET_BP) {
> + if ((c->flags & SHADER_BREAKPOINT || c->flags &
> TRIGGER_RESUME_SET_BP) &&
> + !(c->flags & DISABLE_DEBUG_MODE)) {
> uint32_t aip = ptr[0];
>
> igt_assert_f(aip != SHADER_CANARY, "Workload executed but
> breakpoint not hit!\n"); @@ -1049,6 +1051,7 @@ static void
> online_session_check(struct xe_eudebug_session *s, int flags)
> struct drm_xe_eudebug_event_eu_attention *ea = NULL;
> struct drm_xe_eudebug_event *event = NULL;
> struct online_debug_data *data = s->c->ptr;
> + bool expect_exception = flags & DISABLE_DEBUG_MODE ? false : true;
> int sum = 0;
> int bitmask_size;
>
> @@ -1076,7 +1079,10 @@ static void online_session_check(struct
> xe_eudebug_session *s, int flags)
> if (flags == SHADER_BREAKPOINT)
> igt_assert_eq(sum, data->threads_count);
>
> - igt_assert(sum > 0);
> + if (expect_exception)
> + igt_assert(sum > 0);
> + else
> + igt_assert(sum == 0);
> }
>
> static void ufence_ack_trigger(struct xe_eudebug_debugger *d, @@ -1092,7
> +1098,12 @@ static void ufence_ack_trigger(struct xe_eudebug_debugger *d,
> * SUBTEST: basic-breakpoint
> * Description:
> * Check whether KMD sends attention events
> - * for runalone workload stopped on breakpoint.
> + * for workload in debug mode stopped on breakpoint.
> + *
> + * SUBTEST: breakpoint-not-in-debug-mode
> + * Description:
> + * Check whether KMD resets the GPU when it spots an attention
> + * coming from workload not in debug mode.
> *
> * SUBTEST: stopped-thread
> * Description:
> @@ -1540,6 +1551,9 @@ igt_main
> test_gt_render_or_compute("basic-breakpoint", fd, hwe)
> test_basic_online(fd, hwe, SHADER_BREAKPOINT);
>
> + test_gt_render_or_compute("breakpoint-not-in-debug-mode", fd,
> hwe)
> + test_basic_online(fd, hwe, SHADER_BREAKPOINT |
> DISABLE_DEBUG_MODE);
> +
> test_gt_render_or_compute("stopped-thread", fd, hwe)
> test_basic_online(fd, hwe, SHADER_BREAKPOINT |
> TRIGGER_RESUME_DELAYED);
>
> --
> 2.34.1
More information about the igt-dev
mailing list