[PATCH i-g-t v2 00/66] Test coverage for GPU debug support

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Thu Aug 8 11:13:39 UTC 2024


On Tue, Jul 30, 2024 at 01:44:17PM +0200, Christoph Manszewski wrote:
> 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.

May I ask to just divide series to library and tests part where
library changes is in few patches max, then tests in separate
patches? I've noticed through rough walk through the series
some code appears in some patches, whereas it disappears in
others. I mean I would like to review final state of the code
instead going through the history of the development eudebug
feature. Upstreaming Xe driver igts was also done in similar way
in few commits only. If you think some commit messages might
be interesting from the future perspective please keep them
during squashing.

--
Zbigniew

> 
> v2:
>  - make sure to include all patches and verify that each individual
>  patch compiles (Zbigniew)
> 
> Andrzej Hajda (6):
>   tests/xe_eudebug: Add userptr variant of basic-vm-access test
>   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: Rework invalid instruction tests
> 
> Christoph Manszewski (17):
>   lib/xe_ioctl: Add wrapper with vm_bind_op extension parameter
>   lib/xe_eudebug: Add support for vm_bind events
>   lib/xe_eudebug: Add support for user fence acking
>   lib/xe_eudebug: Add support for dynamic debugger sysfs toggle
>   tests/xe_eudebug: Add basic vm-bind coverage
>   tests/xe_eudebug: Add support for dynamic debugger sysfs toggle
>   tests/xe_eudebug: Add coverage for sysfs debugger toggle
>   lib/xe_eudebug: Allow debugger to wait for client
>   tests/xe_eudebug: Add vm-bind discovery tests
>   tests/xe_eudebug: Add basic-vm-bind-ufence
>   tests/xe_eudebug: Add vm-bind-clear test
>   lib/gpgpu_shader: Extend shader building library
>   tests/xe_exec_sip: Port tests for shaders and sip
>   tests/xe_exec_sip: Add support for dynamic debugger sysfs toggle
>   tests/xe_eudebug_online: Add support for dynamic debugger sysfs toggle
>   tests/xe_eudebug_online: Add subtests w/o long running mode
>   tests/xe_live_ktest: Add xe_eudebug live test
> 
> Dominik Grzegorzek (18):
>   drm-uapi/xe: Sync with eudebug uapi
>   tests/xe_eudebug: Test eudebug connection
>   lib/xe_eudebug: Introduce eu debug testing framework
>   lib/xe_eudebug: Add exec_queue support
>   lib/xe_eudebug: Add attention events support
>   lib/xe_eudebug: Add metadata support
>   tests/xe_eudebug: Test open close events
>   tests/xe_eudebug: Exercise read_event ioctl
>   tests/xe_eudebug: Add vm events sanity check
>   tests/xe_eudebug: Race discovery against eudebug attach.
>   tests/xe_eudebug: Introduce basic exec_queue testing
>   tests/xe_eudebug: Include exec queues in discovery testing
>   tests/xe_exec_sip: Check if we reset due to unhandled attention
>   tests/xe_exec_sip: Check usercoredump for attentions
>   tests/xe_eudebug_online: Debug client which runs workloads on EU
>   tests/xe_eudebug_online: Set dynamic breakpoint on interrupt-all
>   tests/xe_eudebug_online: What if user does not set debug mode?
>   tests/xe_eudebug_online: Check if eu debugger disables preemption
>     timeout
> 
> Dominik Karol Piatkowski (1):
>   tests/xe_eudebug_online: Add caching tests
> 
> Dominik Karol Piątkowski (5):
>   tests/xe_eudebug: Add multigpu scenarios
>   tests/xe_exec_sip: Add breakpoint-writesip-twice test
>   tests/xe_exec_sip: Add breakpoint-waitsip-heavy test
>   tests/xe_eudebug_online: Add tdctl-parameters test
>   tests/xe_eudebug_online: Add single-step and single-step-one tests
> 
> Gwan-gyeong Mun (1):
>   lib/intel_batchbuffer: Add support for long-running mode execution
> 
> Jonathan Cavitt (2):
>   tests/xe_eudebug: Exercise lseek
>   tests/xe_eudebug: Test multiple bo sizes
> 
> Karolina Stolarek (6):
>   tests/xe_eudebug: Add discovery-race-vmbind subtest
>   tests/xe_exec_sip: Add sanity-after-timeout test
>   tests/xe_exec_sip: Add nodebug test cases
>   lib/xe_eudebug: Expose xe_eudebug_connect
>   tests/xe_eudebug_online: Add interrupt-reconnect test
>   tests/xe_eudebug_online: Add multisession test cases
> 
> Kolanupaka Naveena (1):
>   tests/xe_eudebug_online: Adds debugger-reopen test
> 
> Maciej Patelczyk (3):
>   tests/xe_eudebug: Exercise debug metadata events sent to debugger
>   tests/xe_eudebug: Add basic-vm-bind-metadata-discovery
>   tests/xe_eudebug: Added connect-user test
> 
> Mika Kuoppala (2):
>   lib/xe_eudebug: Allow client to wait for debugger
>   tests/xe_eudebug: Add vm open/pread/pwrite basic tests
> 
> Pawel Sikora (4):
>   tests/xe_eudebug: Add basic-vm-access-parameters test
>   lib/xe_eudebug: Add mutex for log events write
>   tests/xe_eudebug: Add basic-client-th test
>   tests/xe_eudebug_online: Add reset-with-attention test
> 
>  include/drm-uapi/xe_drm.h         |  104 +-
>  include/drm-uapi/xe_drm_eudebug.h |  226 +++
>  lib/gpgpu_shader.c                |  474 +++++-
>  lib/gpgpu_shader.h                |   29 +-
>  lib/iga64_generated_codes.c       |  428 ++++-
>  lib/intel_batchbuffer.c           |  153 +-
>  lib/intel_batchbuffer.h           |   22 +
>  lib/meson.build                   |    1 +
>  lib/xe/xe_eudebug.c               | 2192 ++++++++++++++++++++++++++
>  lib/xe/xe_eudebug.h               |  206 +++
>  lib/xe/xe_ioctl.c                 |   20 +-
>  lib/xe/xe_ioctl.h                 |    5 +
>  tests/intel/xe_eudebug.c          | 2425 +++++++++++++++++++++++++++++
>  tests/intel/xe_eudebug_online.c   | 2117 +++++++++++++++++++++++++
>  tests/intel/xe_exec_sip.c         |  332 +++-
>  tests/intel/xe_live_ktest.c       |    6 +
>  tests/meson.build                 |    2 +
>  17 files changed, 8701 insertions(+), 41 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
> 
> -- 
> 2.34.1
> 


More information about the igt-dev mailing list