[PATCH i-g-t v2 39/66] tests/xe_exec_sip: Check if we reset due to unhandled attention
Piatkowski, Dominik Karol
dominik.karol.piatkowski at intel.com
Thu Aug 1 12:57:03 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 39/66] tests/xe_exec_sip: Check if we reset due to
> unhandled attention
>
> From: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
>
> Add breakpoint-waitsip test which checks whether we reset upon unhandled
> attention.
>
> Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek at intel.com>
> Cc: Christoph Manszewski <christoph.manszewski at intel.com>
> ---
> tests/intel/xe_exec_sip.c | 21 +++++++++++++++++++--
> 1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/tests/intel/xe_exec_sip.c b/tests/intel/xe_exec_sip.c index
> e52889818..1b0accb3b 100644
> --- a/tests/intel/xe_exec_sip.c
> +++ b/tests/intel/xe_exec_sip.c
> @@ -40,6 +40,7 @@
> #define SHADER_WAIT 2
> #define SIP_WRITE 3
> #define SIP_NULL 4
> +#define SIP_WAIT 5
>
> static struct intel_buf *
> create_fill_buf(int fd, int width, int height, uint8_t color) @@ -97,7 +98,9
> @@ static struct gpgpu_shader *get_sip(int fd, const int siptype,
> switch (siptype) {
> case SIP_WRITE:
> break;
> - /* TODO: Add alternative SIP instructions here */
> + case SIP_WAIT:
> + gpgpu_shader__wait(sip);
> + break;
> }
>
> gpgpu_shader__end_system_routine(sip, shadertype ==
> SHADER_BREAKPOINT); @@ -211,12 +214,20 @@
> xe_sysfs_get_job_timeout_ms(int fd, struct drm_xe_engine_class_instance
> *eci)
> * SUBTEST: breakpoint-writesip
> * Description: Test that we enter SIP after hitting breakpoint in shader.
> *
> + * SUBTEST: breakpoint-waitsip
> + * Description: Test that we reset after seeing the attention without the
> debugger.
> + *
> */
> static void test_sip(int shader, int sip, struct drm_xe_engine_class_instance
> *eci) {
> unsigned int threads = 512;
> unsigned int height = max_t(threads, HEIGHT, threads * 2);
> unsigned int width = WIDTH;
> + struct drm_xe_ext_set_property ext = {
> + .base.name =
> DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY,
> + .property =
> DRM_XE_EXEC_QUEUE_SET_PROPERTY_EUDEBUG,
> + .value = DRM_XE_EXEC_QUEUE_EUDEBUG_FLAG_ENABLE,
> + };
> struct timespec ts = { };
> uint32_t exec_queue_id, handle, vm_id;
> struct intel_bb *ibb;
> @@ -228,6 +239,7 @@ static void test_sip(int shader, int sip, struct
> drm_xe_engine_class_instance *e
> fd = drm_open_driver(DRIVER_XE);
> xe_device_get(fd);
>
> +
> vm_id = xe_vm_create(fd, 0, 0);
>
> /* Get timeout for job, and add 4s to ensure timeout processes in
> subtest. */ @@ -235,7 +247,9 @@ static void test_sip(int shader, int sip,
> struct drm_xe_engine_class_instance *e
> timeout *= NSEC_PER_MSEC;
> timeout *= igt_run_in_simulation() ? 10 : 1;
>
> - exec_queue_id = xe_exec_queue_create(fd, vm_id, eci, 0);
> + exec_queue_id = xe_exec_queue_create(fd, vm_id, eci,
> + has_debugger(fd) ?
> + to_user_pointer(&ext) : 0);
> ibb = intel_bb_create_with_context(fd, exec_queue_id, vm_id, NULL,
> 4096);
>
> igt_nsec_elapsed(&ts);
> @@ -292,6 +306,9 @@ igt_main
>
> test_render_and_compute("breakpoint-writesip", fd, eci)
> test_sip(SHADER_BREAKPOINT, SIP_WRITE, eci);
> +
> + test_render_and_compute("breakpoint-waitsip", fd, eci)
> + test_sip(SHADER_BREAKPOINT, SIP_WAIT, eci);
> }
>
> igt_fixture
> --
> 2.34.1
More information about the igt-dev
mailing list