[PATCH v8 0/5] drm/xe/guc: Add GuC based register capture for error capture
Zhanjun Dong
zhanjun.dong at intel.com
Thu May 2 20:57:33 UTC 2024
Port GuC based register capture for error capture from i915 to Xe.
There are 3 parts inside:
. Prepare for capture registers
There is a bo create at guc ads init time, that is very early
and engi ne map is not ready, make it hard to calculate the
capture buffer size, new function created for worst case size
caluation. Other than that, this part basically follows the i915
design.
. Process capture notification message
Basically follows i915 design
. Sysfs command process.
Xe switched to devcoredump, adopted command line process with
captured node list.
Signed-off-by: Zhanjun Dong <zhanjun.dong at intel.com>
Cc: Alan Previn <alan.previn.teres.alexis at intel.com>
Changes from prior revs:
v8:- Reorgnize the order of patches
Change the capture size check from worst min size to worst size
Replace the kernel alloc with drm managed alloc
Replace the memcpy with xe_map_memcpy_from
Free GuC capture outlist as part of xe_devcoredump_free
v7:- Kconfig CONFIG_DRM_XE_CAPTURE_ERROR removed
v6:- Change hardcoded register snapshot fill to follow mapping tables
When capture is empty, take snapshot from engine
v5:- Split dss helper code out as an standalone patch
Remove old platform registers definition.
Split register map table to 32 and 64bit each
v4:- Move register map table to xe_hw_engine.c
v3:- Remove condition compilation in code
v2:- Split into multiple chunks
Zhanjun Dong (5):
drm/xe/guc: Prepare GuC register list and update ADS size for error
capture
drm/xe/guc: Add capture size check in GuC log buffer
drm/xe/guc: Pre-allocate output nodes for extraction
drm/xe/guc: Extract GuC error capture lists
drm/xe/guc: Plumb GuC-capture into dev coredump
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 7 +
drivers/gpu/drm/xe/xe_devcoredump.c | 2 +
drivers/gpu/drm/xe/xe_gt_printk.h | 3 +
drivers/gpu/drm/xe/xe_guc.c | 5 +
drivers/gpu/drm/xe/xe_guc.h | 5 +
drivers/gpu/drm/xe/xe_guc_ads.c | 208 +++-
drivers/gpu/drm/xe/xe_guc_ads.h | 3 +
drivers/gpu/drm/xe/xe_guc_ads_types.h | 2 +
drivers/gpu/drm/xe/xe_guc_capture.c | 1223 ++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_capture.h | 20 +
drivers/gpu/drm/xe/xe_guc_capture_fwif.h | 221 ++++
drivers/gpu/drm/xe/xe_guc_ct.c | 2 +
drivers/gpu/drm/xe/xe_guc_fwif.h | 70 ++
drivers/gpu/drm/xe/xe_guc_log.c | 179 ++++
drivers/gpu/drm/xe/xe_guc_log.h | 15 +
drivers/gpu/drm/xe/xe_guc_log_types.h | 24 +
drivers/gpu/drm/xe/xe_guc_submit.c | 54 +-
drivers/gpu/drm/xe/xe_guc_submit.h | 2 +
drivers/gpu/drm/xe/xe_guc_types.h | 2 +
drivers/gpu/drm/xe/xe_hw_engine.c | 249 +++--
drivers/gpu/drm/xe/xe_hw_engine.h | 4 +
drivers/gpu/drm/xe/xe_hw_engine_types.h | 150 ++-
drivers/gpu/drm/xe/xe_sched_job.c | 7 +-
24 files changed, 2308 insertions(+), 150 deletions(-)
create mode 100644 drivers/gpu/drm/xe/xe_guc_capture.c
create mode 100644 drivers/gpu/drm/xe/xe_guc_capture.h
create mode 100644 drivers/gpu/drm/xe/xe_guc_capture_fwif.h
--
2.34.1
More information about the Intel-xe
mailing list