Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v7 00/16] Test coverage for GPU debug support
@ 2024-09-18 11:30 Christoph Manszewski
  2024-09-18 11:30 ` [PATCH i-g-t v7 01/16] lib/xe_ioctl: Add wrapper with vm_bind_op extension parameter Christoph Manszewski
                   ` (20 more replies)
  0 siblings, 21 replies; 33+ messages in thread
From: Christoph Manszewski @ 2024-09-18 11:30 UTC (permalink / raw)
  To: igt-dev
  Cc: Zbigniew Kempczyński, Kamil Konieczny, Dominik Grzegorzek,
	Maciej Patelczyk, Dominik Karol Piątkowski, Pawel Sikora,
	Andrzej Hajda, Kolanupaka Naveena, Mika Kuoppala, Gwan-gyeong Mun,
	Jan Sokolowski, Christoph Manszewski

Hi,

In this series the eudebug kernel and validation team would like to
add test coverage for GPU debug support recently proposed as an RFC.
(https://patchwork.freedesktop.org/series/136572/)

This series adds 'xe_eudebug' and 'xe_eudebug_online' tests together
with a library that encapsulates common paths in current and future
EU debugger scenarios. It also extends the 'xe_exec_sip' test and
'gpgpu_shader' library.

The aim of the 'xe_eudebug' test is to validate the eudebug resource
tracking and event delivery mechanism. The 'xe_eudebug_online' test is
dedicated for 'online' scenarios which means scenarios that exercise
hardware exception handling and thread state manipulation.

The xe_eudebug library provides an abstraction over debugger and debuggee
processes, asynchronous event reader, and event log buffers for post-mortem
analysis.

Latest kernel code can be found here:
https://gitlab.freedesktop.org/miku/kernel/-/commits/eudebug-dev

Thank you in advance for any comments and insight.

v2:
 - make sure to include all patches and verify that each individual
 patch compiles (Zbigniew)

v3:
 - fix multiple typos (Dominik Karol),
 - squash subtest and eudebug lib patches (Zbigniew),
 - include uapi sync/fix (Kamil)

v4:
 - move all eudebug uapi changes to xe_drm_eudebug.h (Zbigniew),
 - move some 'xe_exec_sip' tests to 'xe_exec_sip_eudebug' test (Zbigniew),
 - control eudebug lib and test build with meson flag and disable it by
 default (Zbigniew),
 - fix multiple checkpatch issues (Kamil),
 - apply review comments from Dominik,

v5:
 - add comment to 'xe_drm_eudebug' (Zbigniew),
 - misc fixes and cleanups in gpgpu_shader.[ch] (Zbigniew),
 - assert on offset in intel_bb_ptr_get (Zbigniew),
 - use enum for shader and sip type in 'xe_exec_sip[_eudebug]'
 (Zbigniew),
 - fix string concatenation issue for meson older than 0.49,
 - more (hopefully all relevant) checkpatch issues addressed,

v6:
 - trim write_on_exception shader parameter list (Zbigniew),
 - fix assert condition for 'intel_bb_ptr_get' (Zbigniew),
 - properly use previously introduced enum arround xe_exec_sip[_eudebug]
 (Zbigniew),
 - simplify loop condition in xe_exec_sip_eudebug (Zbigniew),
 - add 'gpgpu_shader_last_instr' helper (Zbigniew),
 - assert on params of public functions in lib/xe_eudebug (Zbigniew),
 - fix assert order arround lib/xe_eudebug (Zbigniew),
 - simplify and unify casts in lib/xe_eudebug (Zbigniew),
 - more descriptive variable names for lib/xe_eudebug functions
 and structs (Zbigniew),
 - fix typo in 'xe_eudebug_debugger_dettach' (Zbigniew),
 - create 'xe_eudebug_debugger_worker_state' enum (Zbigniew),
 - misc code formatting fixes (Zbigniew),
 - use common list in meson for conditional build and doc generation of
 xe_eudebug tests (Zbigniew),
 - rebase on top of master,

v7:
 - drop '--exclude-files' arg from doc script and ignore
 test binary/doc missmatch when test binary is not built (Kamil),
 - add 'xe_eudebug@basic-exec-queue-enable' subtest (Mika),
 - remove assumption of clients executing in sequence for
 'xe_eudebug_online@breakpoint-many-sessions-single-tile' (Jan),
 - make client seqno thread-safe (Jonathan, Zbigniew),
 - use '&' instead of '==' when checking for
 DRM_XE_EXEC_QUEUE_EUDEBUG_FLAG_ENABLE flag (Maciej),
 - drop redundant 'xe_device_get' calls from tests (Zbigniew),
 - use 'drm_close_driver' in 'xe_eudebug_client_close_driver'
 and drop redundant 'xe_device_put' calls from tests,
 - comments and slight rework of 'test_read_events' (Zbigniew),
 - apply other minor fixes to 'xe_eudebug' which were
 listed in the review (Zbigniew),
 - drop redundant write to r30.7 reg in gpgpu_shader (Zbigniew),
 - rename and rework bit copying functions (Dominik, Zbigniew),
 - enhance find_kernel_in_bb() so it preads the whole bb
 and uses memmem() to find the kernel (Dominik, Zbigniew),
 - move aip checking outside of set_breakpoint_once() function
 so it only does what it advertises (Dominik, Zbigniew),
 - apply other minor fixes to 'xe_eudebug_online' which were
 listed in the review (Dominik, Zbigniew),
 - rebase on top of master.

Andrzej Hajda (5):
  lib/gpgpu_shader: Add write_on_exception template
  lib/gpgpu_shader: Add set/clear exception register (cr0.1) helpers
  lib/intel_batchbuffer: Add helper to get pointer at specified offset
  lib/gpgpu_shader: Allow enabling illegal opcode exceptions in shader
  tests/xe_exec_sip: Introduce invalid instruction tests

Christoph Manszewski (5):
  lib/xe_ioctl: Add wrapper with vm_bind_op extension parameter
  lib/gpgpu_shader: Extend shader building library
  tests/xe_exec_sip: Add sanity-after-timeout test
  tests/xe_exec_sip_eudebug: Port tests for shaders and sip
  tests/xe_live_ktest: Add xe_eudebug live test

Dominik Grzegorzek (4):
  drm-uapi/xe: Sync with eudebug uapi
  lib/xe_eudebug: Introduce eu debug testing framework
  tests/xe_eudebug: Test eudebug resource tracking and manipulation
  tests/xe_eudebug_online: Debug client which runs workloads on EU

Gwan-gyeong Mun (1):
  lib/intel_batchbuffer: Add support for long-running mode execution

Kamil Konieczny (1):
  scripts/test_list: Relax treatment of non-compiled tests

 include/drm-uapi/xe_drm_eudebug.h |  341 ++++
 lib/gpgpu_shader.c                |  477 ++++-
 lib/gpgpu_shader.h                |   34 +-
 lib/iga64_generated_codes.c       |  532 +++++-
 lib/intel_batchbuffer.c           |  149 +-
 lib/intel_batchbuffer.h           |   24 +
 lib/meson.build                   |    5 +
 lib/xe/xe_eudebug.c               | 2254 +++++++++++++++++++++++
 lib/xe/xe_eudebug.h               |  220 +++
 lib/xe/xe_ioctl.c                 |   20 +-
 lib/xe/xe_ioctl.h                 |    5 +
 meson.build                       |    2 +
 meson_options.txt                 |    5 +
 scripts/test_list.py              |   32 +-
 tests/intel/xe_eudebug.c          | 2795 +++++++++++++++++++++++++++++
 tests/intel/xe_eudebug_online.c   | 2312 ++++++++++++++++++++++++
 tests/intel/xe_exec_sip.c         |  152 +-
 tests/intel/xe_exec_sip_eudebug.c |  355 ++++
 tests/intel/xe_live_ktest.c       |    6 +
 tests/meson.build                 |   10 +
 20 files changed, 9699 insertions(+), 31 deletions(-)
 create mode 100644 include/drm-uapi/xe_drm_eudebug.h
 create mode 100644 lib/xe/xe_eudebug.c
 create mode 100644 lib/xe/xe_eudebug.h
 create mode 100644 tests/intel/xe_eudebug.c
 create mode 100644 tests/intel/xe_eudebug_online.c
 create mode 100644 tests/intel/xe_exec_sip_eudebug.c

-- 
2.34.1


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2024-09-26 10:29 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-18 11:30 [PATCH i-g-t v7 00/16] Test coverage for GPU debug support Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 01/16] lib/xe_ioctl: Add wrapper with vm_bind_op extension parameter Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 02/16] lib/gpgpu_shader: Extend shader building library Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 03/16] lib/gpgpu_shader: Add write_on_exception template Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 04/16] lib/gpgpu_shader: Add set/clear exception register (cr0.1) helpers Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 05/16] lib/intel_batchbuffer: Add helper to get pointer at specified offset Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 06/16] lib/gpgpu_shader: Allow enabling illegal opcode exceptions in shader Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 07/16] tests/xe_exec_sip: Add sanity-after-timeout test Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 08/16] tests/xe_exec_sip: Introduce invalid instruction tests Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 09/16] drm-uapi/xe: Sync with eudebug uapi Christoph Manszewski
2024-09-25 19:23   ` Ville Syrjälä
2024-09-26  9:01     ` Manszewski, Christoph
2024-09-26  9:46       ` Ville Syrjälä
2024-09-26 10:28         ` Manszewski, Christoph
2024-09-18 11:30 ` [PATCH i-g-t v7 10/16] lib/xe_eudebug: Introduce eu debug testing framework Christoph Manszewski
2024-09-19  5:47   ` Zbigniew Kempczyński
2024-09-18 11:30 ` [PATCH i-g-t v7 11/16] scripts/test_list: Relax treatment of non-compiled tests Christoph Manszewski
2024-09-19  6:17   ` Zbigniew Kempczyński
2024-09-18 11:30 ` [PATCH i-g-t v7 12/16] tests/xe_eudebug: Test eudebug resource tracking and manipulation Christoph Manszewski
2024-09-19  6:37   ` Zbigniew Kempczyński
2024-09-18 11:30 ` [PATCH i-g-t v7 13/16] lib/intel_batchbuffer: Add support for long-running mode execution Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 14/16] tests/xe_exec_sip_eudebug: Port tests for shaders and sip Christoph Manszewski
2024-09-18 11:30 ` [PATCH i-g-t v7 15/16] tests/xe_eudebug_online: Debug client which runs workloads on EU Christoph Manszewski
2024-09-19  6:52   ` Zbigniew Kempczyński
2024-09-18 11:30 ` [PATCH i-g-t v7 16/16] tests/xe_live_ktest: Add xe_eudebug live test Christoph Manszewski
2024-09-18 12:59 ` ✓ Fi.CI.BAT: success for Test coverage for GPU debug support (rev7) Patchwork
2024-09-18 13:31 ` ✓ CI.xeBAT: " Patchwork
2024-09-18 18:25 ` ✗ CI.xeFULL: failure " Patchwork
2024-09-19  3:24 ` ✗ Fi.CI.IGT: " Patchwork
2024-09-19 18:02 ` [PATCH i-g-t v7 00/16] Test coverage for GPU debug support Dixit, Ashutosh
2024-09-20 12:57   ` Manszewski, Christoph
2024-09-20 16:08     ` Dixit, Ashutosh
2024-09-23  7:57       ` Zbigniew Kempczyński

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox