From: Christoph Manszewski <christoph.manszewski@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>,
"Kamil Konieczny" <kamil.konieczny@linux.intel.com>,
"Dominik Grzegorzek" <dominik.grzegorzek@intel.com>,
"Maciej Patelczyk" <maciej.patelczyk@intel.com>,
"Dominik Karol Piątkowski" <dominik.karol.piatkowski@intel.com>,
"Pawel Sikora" <pawel.sikora@intel.com>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Kolanupaka Naveena" <kolanupaka.naveena@intel.com>,
"Mika Kuoppala" <mika.kuoppala@intel.com>,
"Gwan-gyeong Mun" <gwan-gyeong.mun@intel.com>,
"Jan Sokolowski" <jan.sokolowski@intel.com>,
"Christoph Manszewski" <christoph.manszewski@intel.com>
Subject: [PATCH i-g-t v7 00/16] Test coverage for GPU debug support
Date: Wed, 18 Sep 2024 13:30:01 +0200 [thread overview]
Message-ID: <20240918113017.144687-1-christoph.manszewski@intel.com> (raw)
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
next reply other threads:[~2024-09-18 11:30 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-18 11:30 Christoph Manszewski [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240918113017.144687-1-christoph.manszewski@intel.com \
--to=christoph.manszewski@intel.com \
--cc=andrzej.hajda@intel.com \
--cc=dominik.grzegorzek@intel.com \
--cc=dominik.karol.piatkowski@intel.com \
--cc=gwan-gyeong.mun@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=jan.sokolowski@intel.com \
--cc=kamil.konieczny@linux.intel.com \
--cc=kolanupaka.naveena@intel.com \
--cc=maciej.patelczyk@intel.com \
--cc=mika.kuoppala@intel.com \
--cc=pawel.sikora@intel.com \
--cc=zbigniew.kempczynski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox