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

Manszewski, Christoph christoph.manszewski at intel.com
Thu Aug 8 11:42:21 UTC 2024


Hi Zbigniew,

On 8.08.2024 13:13, Zbigniew Kempczyński wrote:
> 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.

Makes sense, I will try to squash patches for the next revision.

Thanks,
Christoph

> 
> --
> 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