[PATCH v8 0/5] drm/xe/guc: Add GuC based register capture for error capture

Dong, Zhanjun zhanjun.dong at intel.com
Fri May 3 16:53:17 UTC 2024


Please ignore this series, patch #1 and #2 was accidently squashed 
together. I will respin another rev 8 to keep the steering register list 
handling as #2.

Regards,
Zhanjun


On 2024-05-02 4:57 p.m., Zhanjun Dong wrote:
> 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
> 


More information about the Intel-xe mailing list