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

Grzegorzek, Dominik dominik.grzegorzek at intel.com
Thu Aug 1 19:27:39 UTC 2024


On Tue, 2024-07-30 at 13:45 +0200, Christoph Manszewski wrote:
> 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>
Even though the commit is correct it probably would need to be removed in the future.
During upstream review of the Xe it was pointed out that we will need to limit
debugger functionality to only lr mode, as we depend on it. 

Regards, 
Dominik
> ---
>  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);



More information about the igt-dev mailing list