From: Nareshkumar Gollakoti <naresh.kumar.g@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: tejas.upadhyay@intel.com,
Nareshkumar Gollakoti <naresh.kumar.g@intel.com>
Subject: [PATCH v4 0/7] drm/xe: Capture additional HW register state in devcoredump
Date: Mon, 12 Oct 2026 20:22:30 +0530 [thread overview]
Message-ID: <20261012145237.3788198-1-naresh.kumar.g@intel.com> (raw)
This series extends the Xe devcoredump with additional hardware register
state to improve post-mortem debugging of GPU hangs and faults on Xe3p.
Today the devcoredump captures GuC log/CT, engine and submission state.
When triaging hangs it is often necessary to also know the static HW
configuration (fuses), GuC status/error state, GAM page-fault reporting
and L3 node status at the time of the hang. Collecting these at capture
time makes the dump self-contained and avoids relying on separate
probe-time logging.
To do this, the series adds a small generic MMIO register-dump helper
(descriptor list -> snapshot -> print/free) and uses it for several
register groups. Each group is captured for both the primary GT and,
where applicable, the media GT, and is gated to Xe3p (GRAPHICS_VER >= 35).
Registers requiring MCR steering are read through
xe_gt_mcr_unicast_read_any(); the remaining GAM registers use INSTANCE0
default steering and are read directly.
Snapshots are allocated with GFP_ATOMIC as capture runs inside the
dma_fence signalling section, matching the surrounding captures, and are
freed in the existing devcoredump teardown path.
Patches:
1 Add the generic reg-dump helpers and capture GT/media fuse registers.
2 Capture GT and media GuC status/error registers.
3 Print register offsets alongside names in the GuC engine capture
output (32- and 64-bit), easing cross-reference with the bspec.
4 Capture the GAM page-fault report head/tail registers.
5 Add the TDL gfx registers to the XeHPG extended GuC capture list.
6 Capture L3 node status registers (MCR, read via unicast_read_any()).
7 Capture additional engine state registers
Sample devcoredump output gains the following sections:
**** GT Fuse Register Dump ****
**** Media GT Fuse Register Dump ****
**** GT GuC Register Dump ****
**** Media GT GuC Register Dump ****
**** GAM PF Report ****
**** Node Status ****
**** Additional engine state registers ****
v3:(Sashiko)
- Use the LOW_DW MMIO offset when printing combined 64-bit register values
in capture snapshots
- Preserve the existing coredump register-name format and append register
address as trailing metadata
- Replace the render is not awake message with raw POWERGATE_ENABLE
bit-state output
- Move engine-class-specific registers out of COMMON_BASE_ENGINE_INSTANCE
into class-specific capture lists
v4:
- optimized APIs and reduced few structs(Tejas)
- Fixed CI hook error
Nareshkumar Gollakoti (7):
drm/xe/devcoredump: Capture GT fuse registers in devcoredump
drm/xe/devcoredump: Add GuC register snapshot to devcoredump
drm/xe/guc: Print register addresses in capture snapshot output
drm/xe: dump GAM page fault report registers in devcoredump
drm/xe/guc: add TDL,SLICE gfx registers to capture list
drm/xe: capture L3 node status registers in devcoredump
drm/xe/guc: capture additional engine state registers
drivers/gpu/drm/xe/regs/xe_engine_regs.h | 22 ++
drivers/gpu/drm/xe/regs/xe_gt_regs.h | 13 +
drivers/gpu/drm/xe/regs/xe_guc_regs.h | 5 +
drivers/gpu/drm/xe/xe_devcoredump.c | 320 +++++++++++++++++++++-
drivers/gpu/drm/xe/xe_devcoredump_types.h | 66 +++++
drivers/gpu/drm/xe/xe_guc_capture.c | 58 +++-
6 files changed, 472 insertions(+), 12 deletions(-)
--
2.43.0
next reply other threads:[~2026-10-12 14:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 14:52 Nareshkumar Gollakoti [this message]
2026-10-12 14:52 ` [PATCH v4 1/7] drm/xe/devcoredump: Capture GT fuse registers in devcoredump Nareshkumar Gollakoti
2026-10-12 15:02 ` sashiko-bot
2026-10-12 14:52 ` [PATCH v4 2/7] drm/xe/devcoredump: Add GuC register snapshot to devcoredump Nareshkumar Gollakoti
2026-10-12 15:03 ` sashiko-bot
2026-10-12 14:52 ` [PATCH v4 3/7] drm/xe/guc: Print register addresses in capture snapshot output Nareshkumar Gollakoti
2026-10-12 14:52 ` [PATCH v4 4/7] drm/xe: dump GAM page fault report registers in devcoredump Nareshkumar Gollakoti
2026-10-12 15:02 ` sashiko-bot
2026-10-12 14:52 ` [PATCH v4 5/7] drm/xe/guc: add TDL, SLICE gfx registers to capture list Nareshkumar Gollakoti
2026-10-12 14:52 ` [PATCH v4 6/7] drm/xe: capture L3 node status registers in devcoredump Nareshkumar Gollakoti
2026-10-12 15:06 ` sashiko-bot
2026-10-12 14:52 ` [PATCH v4 7/7] drm/xe/guc: capture additional engine state registers Nareshkumar Gollakoti
2026-10-12 15:07 ` sashiko-bot
2026-10-12 18:56 ` ✗ CI.checkpatch: warning for drm/xe: Capture additional HW register state in devcoredump (rev4) Patchwork
2026-10-12 18:58 ` ✓ CI.KUnit: success " Patchwork
2026-10-12 22:04 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-13 4:36 ` ✓ Xe.CI.FULL: " 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=20261012145237.3788198-1-naresh.kumar.g@intel.com \
--to=naresh.kumar.g@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=tejas.upadhyay@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