From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: <intel-xe@lists.freedesktop.org>, <simona.vetter@ffwll.ch>,
<matthew.brost@intel.com>, <christian.koenig@amd.com>,
<thomas.hellstrom@linux.intel.com>,
<joonas.lahtinen@linux.intel.com>, <gustavo.sousa@intel.com>,
<jan.maslak@intel.com>, <dominik.karol.piatkowski@intel.com>,
<andrzej.hajda@intel.com>, <matthew.auld@intel.com>,
<maciej.patelczyk@intel.com>, <gwan-gyeong.mun@intel.com>
Subject: Re: [PATCH v10 00/27] Intel Xe GPU Debug Support (eudebug) v10
Date: Thu, 3 Sep 2026 12:30:57 -0400 [thread overview]
Message-ID: <apmgwallbRKwJf2k@intel.com> (raw)
In-Reply-To: <20260903145952.848051-1-mika.kuoppala@linux.intel.com>
On Thu, Sep 03, 2026 at 05:59:24PM +0300, Mika Kuoppala wrote:
> Hi,
>
> This is the v10 patch series for Intel Xe GPU debug support (eudebug).
>
> This series continues from the following previous submissions:
> - v1: https://lists.freedesktop.org/archives/intel-xe/2024-July/043605.html
> - v2: https://lists.freedesktop.org/archives/intel-xe/2024-October/052260.html
> - v3: https://lists.freedesktop.org/archives/intel-xe/2024-December/061476.html
> - v4: https://lists.freedesktop.org/archives/intel-xe/2025-August/091645.html
> - v5: https://lists.freedesktop.org/archives/intel-xe/2025-October/097859.html
> - v6: https://lists.freedesktop.org/archives/intel-xe/2025-December/106405.html
> - v7: https://lists.freedesktop.org/archives/intel-xe/2026-February/115750.html
> - v8: https://lists.freedesktop.org/archives/intel-xe/2026-April/124147.html
> - v9: https://lists.freedesktop.org/archives/intel-xe/2026-June/128834.html
>
> # Series layout: core and page faults
>
> v9 shipped eudebug core only, with EU page fault handling split out to be
> sent separately. In v10 the page fault work is included again, but it is
> deliberately kept as a distinct block on top of the core:
>
> - Patches 1-19 are eudebug core. This is a self-contained, functional
> debugger interface and can be reviewed and merged on its own.
> - Patches 20-27 add EU page fault handling on top. They touch xe page
> fault and SVM paths, and nothing in patches 1-19 depends on them.
>
> They are posted together for completeness, so that reviewers can see
> where the core interface is heading and judge the core design with the
> page fault use case in view. Treat the second block as a follow-up series
> that happens to be in the same posting.
>
> # Major Changes from v9
>
> Page fault support is back in the series (see above).
>
> Continued to work through Sashiko feedback, plus review comments on v9.
>
> Core eudebug:
>
> - Reworked the eudebug workqueues. Deferred ufence signalling no longer
> shares the ordered discovery workqueue, and the per device attention
> poller moved off the shared system workqueue onto a device workqueue of
> its own. Both were sources of head of line blocking: a client's ufence
> signal, which is what releases the debuggee from wait_user_fence, could
> queue behind an unrelated client's discovery, and the attention poller
> blocks on eudebug.lock across a gt reset.
> - Connection lifetime and teardown fixes: wake up after detach taking the
> occupied event into account, O_CLOEXEC on the connection fd, hold the
> drm_device for the lifetime of the connection, do not silently truncate
> the target fd, and reject zero as a target fd.
> - Event fifo allocated with GFP_KERNEL_ACCOUNT, resource handles preallocated.
> - ufence acks: avoid double signal when the fence is not tracked, clear
> the bind ref seqno when there is no debugger or when tracking fails,
> and stop referencing the ack after dropping the lock.
> - EU control: take runtime pm around hw access, gate SR-IOV, proper
> teardown when runtime is not active, and no warn on wrong context.
> - Documentation and kernel-doc fixes throughout, including the ioctl_lock
> in struct xe_file, which is held across a whole ioctl and therefore
> nests outside every lock those ioctls take. The security model DOC now
> states which fd acquisition methods the ptrace_may_access() parity
> claim actually covers.
>
> Page faults:
>
> Reworked on top of 'Fine grained fault locking, threaded prefetch,
> storm cache' series (merged). Added svm support and improved multiple
> fault handling.
>
> TODO:
> access_process_vm(task, ...) still has the possible race with
> execve due to mm changing for task, pointed by Sashiko.
> See the relevant code and XXX FIXME in xe_eudebug_vm.c, in
> xe_eudebug_vma_access(), and in xe_eudebug_track_userptr_task()
> in xe_userptr.h. The most straightforward way to fix this
> would be to export access_remote_vm(mm, ...) and then use the
> notifier mm for it.
>
> # Supported Hardware
> - Lunarlake (LNL)
> - Battlemage (BMG)
> - Pantherlake (PTL)
Are we adding CI?
>
> The code for this submission can be found at:
> https://gitlab.freedesktop.org/miku/kernel/-/tree/eudebug-v10
>
> Tests:
> https://gitlab.freedesktop.org/DominikPiatkowski-Intel/igt-gpu-tools/-/tree/eudebug-dev-next
What about the upper level PRs and reviews?
Could you please update us on how that side of the review is going?
Thanks,
Rodrigo.
>
>
> Christoph Manszewski (5):
> drm/xe: Introduce ADD_DEBUG_DATA and REMOVE_DEBUG_DATA vm bind ops
> drm/xe/eudebug: Introduce vm bind and vm bind debug data events
> drm/xe/eudebug_test: Introduce eudebug live tests
> drm/xe: Implement SR-IOV and eudebug exclusivity
> drm/xe: Add xe_client_debugfs and introduce debug_data file
>
> Dominik Grzegorzek (5):
> drm/xe: Add EUDEBUG_ENABLE exec queue property
> drm/xe/eudebug: Introduce exec_queue events
> drm/xe/eudebug: Add hw enablement
> drm/xe/eudebug: Introduce EU control interface
> drm/xe/eudebug: Introduce per device attention scan worker
>
> Gwan-gyeong Mun (5):
> drm/xe/eudebug: Add read/count/compare helper for eu attention
> drm/xe/vm: Support for adding null page VMA to VM on request
> drm/xe/vm: Add xe_vm_svm_vma_subtract() to carve out a sub-range from
> an SVM VMA
> drm/xe/eudebug: Introduce EU pagefault handling interface
> drm/xe/eudebug: Enable EU pagefault handling
>
> Maciej Patelczyk (3):
> drm/xe/pagefault: export pagefault queue properties
> drm/xe: Support for xe_vma_unbind()
> drm/xe: export prep_vma_destroy as xe_vm_prep_vma_destroy
>
> Mika Kuoppala (9):
> drm/xe/eudebug: Introduce eudebug interface
> drm/xe/eudebug: Add documentation
> drm/xe/eudebug: Add connection establishment documentation
> drm/xe/eudebug: Introduce discovery for resources
> drm/xe/eudebug: Mark guc contexts as debuggable
> drm/xe: Remove ifdef in DRM_GPUVA_OP_DRIVER svm subop checking
> drm/xe/eudebug: Add ufence events with acks
> drm/xe/eudebug: Add vm open/pread/pwrite
> drm/xe/eudebug: Add userptr vm pread/pwrite
>
> .../ABI/testing/sysfs-driver-intel-xe-eudebug | 21 +
> Documentation/gpu/driver-uapi.rst | 2 +
> Documentation/gpu/xe/index.rst | 1 +
> Documentation/gpu/xe/xe_eudebug.rst | 83 +
> MAINTAINERS | 2 +
> drivers/gpu/drm/xe/Kconfig | 10 +
> drivers/gpu/drm/xe/Makefile | 7 +-
> drivers/gpu/drm/xe/abi/guc_actions_abi.h | 5 +
> drivers/gpu/drm/xe/abi/guc_klvs_abi.h | 1 +
> drivers/gpu/drm/xe/regs/xe_engine_regs.h | 1 +
> drivers/gpu/drm/xe/regs/xe_gt_regs.h | 43 +
> drivers/gpu/drm/xe/tests/xe_eudebug_test.c | 227 ++
> drivers/gpu/drm/xe/tests/xe_live_test_mod.c | 5 +
> drivers/gpu/drm/xe/xe_client_debugfs.c | 108 +
> drivers/gpu/drm/xe/xe_client_debugfs.h | 17 +
> drivers/gpu/drm/xe/xe_debug_data.c | 383 +++
> drivers/gpu/drm/xe/xe_debug_data.h | 22 +
> drivers/gpu/drm/xe/xe_debug_data_types.h | 25 +
> drivers/gpu/drm/xe/xe_device.c | 28 +-
> drivers/gpu/drm/xe/xe_device.h | 42 +
> drivers/gpu/drm/xe/xe_device_types.h | 57 +
> drivers/gpu/drm/xe/xe_eudebug.c | 2514 +++++++++++++++++
> drivers/gpu/drm/xe/xe_eudebug.h | 119 +
> drivers/gpu/drm/xe/xe_eudebug_hw.c | 730 +++++
> drivers/gpu/drm/xe/xe_eudebug_hw.h | 30 +
> drivers/gpu/drm/xe/xe_eudebug_pagefault.c | 722 +++++
> drivers/gpu/drm/xe/xe_eudebug_pagefault.h | 81 +
> drivers/gpu/drm/xe/xe_eudebug_types.h | 284 ++
> drivers/gpu/drm/xe/xe_eudebug_vm.c | 501 ++++
> drivers/gpu/drm/xe/xe_eudebug_vm.h | 8 +
> drivers/gpu/drm/xe/xe_exec_queue.c | 77 +-
> drivers/gpu/drm/xe/xe_exec_queue.h | 2 +
> drivers/gpu/drm/xe/xe_exec_queue_types.h | 7 +
> drivers/gpu/drm/xe/xe_gt_debug.c | 251 ++
> drivers/gpu/drm/xe/xe_gt_debug.h | 36 +
> drivers/gpu/drm/xe/xe_gt_debug_types.h | 22 +
> drivers/gpu/drm/xe/xe_guc.c | 8 +
> drivers/gpu/drm/xe/xe_guc.h | 6 +
> drivers/gpu/drm/xe/xe_guc_ads.c | 12 +
> drivers/gpu/drm/xe/xe_guc_pagefault.c | 10 +-
> drivers/gpu/drm/xe/xe_guc_submit.c | 34 +
> drivers/gpu/drm/xe/xe_guc_submit.h | 1 +
> drivers/gpu/drm/xe/xe_hw_engine.h | 14 +
> drivers/gpu/drm/xe/xe_pagefault.c | 150 +-
> drivers/gpu/drm/xe/xe_pagefault.h | 10 +
> drivers/gpu/drm/xe/xe_pagefault_types.h | 38 +-
> drivers/gpu/drm/xe/xe_pt.c | 2 -
> drivers/gpu/drm/xe/xe_reg_sr.c | 12 +-
> drivers/gpu/drm/xe/xe_reg_sr.h | 4 +-
> drivers/gpu/drm/xe/xe_reg_whitelist.c | 2 +-
> drivers/gpu/drm/xe/xe_rtp.c | 2 +-
> drivers/gpu/drm/xe/xe_sync.c | 45 +-
> drivers/gpu/drm/xe/xe_sync.h | 7 +-
> drivers/gpu/drm/xe/xe_sync_types.h | 29 +-
> drivers/gpu/drm/xe/xe_userptr.c | 4 +
> drivers/gpu/drm/xe/xe_userptr.h | 32 +
> drivers/gpu/drm/xe/xe_vm.c | 491 +++-
> drivers/gpu/drm/xe/xe_vm.h | 13 +
> drivers/gpu/drm/xe/xe_vm_types.h | 28 +
> drivers/gpu/drm/xe/xe_wa_oob.rules | 4 +
> include/uapi/drm/xe_drm.h | 89 +
> include/uapi/drm/xe_drm_eudebug.h | 416 +++
> 62 files changed, 7826 insertions(+), 111 deletions(-)
> create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-xe-eudebug
> create mode 100644 Documentation/gpu/xe/xe_eudebug.rst
> create mode 100644 drivers/gpu/drm/xe/tests/xe_eudebug_test.c
> create mode 100644 drivers/gpu/drm/xe/xe_client_debugfs.c
> create mode 100644 drivers/gpu/drm/xe/xe_client_debugfs.h
> create mode 100644 drivers/gpu/drm/xe/xe_debug_data.c
> create mode 100644 drivers/gpu/drm/xe/xe_debug_data.h
> create mode 100644 drivers/gpu/drm/xe/xe_debug_data_types.h
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug.c
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug.h
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_hw.c
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_hw.h
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_pagefault.c
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_pagefault.h
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_types.h
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_vm.c
> create mode 100644 drivers/gpu/drm/xe/xe_eudebug_vm.h
> create mode 100644 drivers/gpu/drm/xe/xe_gt_debug.c
> create mode 100644 drivers/gpu/drm/xe/xe_gt_debug.h
> create mode 100644 drivers/gpu/drm/xe/xe_gt_debug_types.h
> create mode 100644 include/uapi/drm/xe_drm_eudebug.h
>
> --
> 2.53.0
>
next prev parent reply other threads:[~2026-09-03 16:31 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 14:59 [PATCH v10 00/27] Intel Xe GPU Debug Support (eudebug) v10 Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 01/27] drm/xe/eudebug: Introduce eudebug interface Mika Kuoppala
2026-09-03 15:16 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 02/27] drm/xe/eudebug: Add documentation Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 03/27] drm/xe/eudebug: Add connection establishment documentation Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 04/27] drm/xe/eudebug: Introduce discovery for resources Mika Kuoppala
2026-09-03 15:22 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 05/27] drm/xe: Add EUDEBUG_ENABLE exec queue property Mika Kuoppala
2026-09-03 15:14 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 06/27] drm/xe/eudebug: Introduce exec_queue events Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 07/27] drm/xe/eudebug: Mark guc contexts as debuggable Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 08/27] drm/xe: Remove ifdef in DRM_GPUVA_OP_DRIVER svm subop checking Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 09/27] drm/xe: Introduce ADD_DEBUG_DATA and REMOVE_DEBUG_DATA vm bind ops Mika Kuoppala
2026-09-03 15:22 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 10/27] drm/xe/eudebug: Introduce vm bind and vm bind debug data events Mika Kuoppala
2026-09-03 15:26 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 11/27] drm/xe/eudebug: Add ufence events with acks Mika Kuoppala
2026-09-03 15:20 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 12/27] drm/xe/eudebug: Add vm open/pread/pwrite Mika Kuoppala
2026-09-03 15:27 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 13/27] drm/xe/eudebug: Add userptr vm pread/pwrite Mika Kuoppala
2026-09-03 15:24 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 14/27] drm/xe/eudebug: Add hw enablement Mika Kuoppala
2026-09-03 15:15 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 15/27] drm/xe/eudebug: Introduce EU control interface Mika Kuoppala
2026-09-03 15:34 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 16/27] drm/xe/eudebug: Introduce per device attention scan worker Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 17/27] drm/xe/eudebug_test: Introduce eudebug live tests Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 18/27] drm/xe: Implement SR-IOV and eudebug exclusivity Mika Kuoppala
2026-09-03 15:32 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 19/27] drm/xe: Add xe_client_debugfs and introduce debug_data file Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 20/27] drm/xe/pagefault: export pagefault queue properties Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 21/27] drm/xe/eudebug: Add read/count/compare helper for eu attention Mika Kuoppala
2026-09-03 15:31 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 22/27] drm/xe/vm: Support for adding null page VMA to VM on request Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 23/27] drm/xe/vm: Add xe_vm_svm_vma_subtract() to carve out a sub-range from an SVM VMA Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 24/27] drm/xe: Support for xe_vma_unbind() Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 25/27] drm/xe: export prep_vma_destroy as xe_vm_prep_vma_destroy Mika Kuoppala
2026-09-03 14:59 ` [PATCH v10 26/27] drm/xe/eudebug: Introduce EU pagefault handling interface Mika Kuoppala
2026-09-03 15:43 ` sashiko-bot
2026-09-03 14:59 ` [PATCH v10 27/27] drm/xe/eudebug: Enable EU pagefault handling Mika Kuoppala
2026-09-03 15:46 ` sashiko-bot
2026-09-03 15:35 ` ✗ CI.checkpatch: warning for Intel Xe GPU Debug Support (eudebug) v10 Patchwork
2026-09-03 15:37 ` ✓ CI.KUnit: success " Patchwork
2026-09-03 15:53 ` ✗ CI.checksparse: warning " Patchwork
2026-09-03 16:17 ` ✓ Xe.CI.BAT: success " Patchwork
2026-09-03 16:30 ` Rodrigo Vivi [this message]
2026-09-04 3:21 ` ✗ Xe.CI.FULL: failure " Patchwork
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=apmgwallbRKwJf2k@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=andrzej.hajda@intel.com \
--cc=christian.koenig@amd.com \
--cc=dominik.karol.piatkowski@intel.com \
--cc=gustavo.sousa@intel.com \
--cc=gwan-gyeong.mun@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=jan.maslak@intel.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=maciej.patelczyk@intel.com \
--cc=matthew.auld@intel.com \
--cc=matthew.brost@intel.com \
--cc=mika.kuoppala@linux.intel.com \
--cc=simona.vetter@ffwll.ch \
--cc=thomas.hellstrom@linux.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