[Intel-gfx] [RFC v3 0/7] Add GuC Error Capture Support
Alan Previn
alan.previn.teres.alexis at intel.com
Tue Jan 11 09:30:10 UTC 2022
This series:
1. Supports the roll out of an upcoming GuC feature to
enable error-state-capture that allows the driver to
register lists of MMIO registers that GuC will report
during a GuC triggered engine-reset event.
2. Updates the ADS blob creation to register lists
of global and engine registers with GuC.
3. Defines tables of register lists that are global or
engine class or engine instance in scope.
4. Separates GuC log-buffer access locks for relay logging
vs the new region for the error state capture data.
5. Allocates an additional interim circular buffer store
to copy snapshots of new GuC reported error-state-capture
dumps in response to the G2H notification.
6. Connects the i915_gpu_coredump reporting function
to the GuC error capture module to print all GuC
error state capture dumps that is reported.
This is the 3rd rev of this series. However, take note
that this series will not pass CI until the following series
is merged to upgrade the GuC firmware to a newer version
which requires Patch #1 of this series is dropped:
https://patchwork.kernel.org/project/intel-gfx/list/?series=599007
Prior receipts of rvb's:
- Patch #4 has received R-v-b from Matthew Brost
<matthew.brost at intel.com>
Changes from prior revs:
v3:
- Fixed all review comments from rev2 except the following:
- Michal Wajdeczko proposed adding a seperate function
to lookup register string nameslookup (based on offset)
but decided against it because of offset conflicts
and the current table layout is easier to maintain.
- Last set of checkpatch errors pertaining to "COMPLEX
MACROS" should be fixed on next rev.
- Abstracted internal-to-guc-capture information into a new
__guc_state_capture_priv structure that allows the exclusion
of intel_guc.h and intel_guc_fwif.h from intel_guc_capture.h.
Now, only the first 2 patches have a wider build time
impact because of the changes to intel_guc_fwif.h but
subsequent changes to guc-capture internal structures
or firmware interfaces used solely by guc-capture module
shoudn't impact the rest of the driver build.
- Added missing Gen12LP registers and added slice+subslice
indices when reporting extended steered registers.
- Add additional checks to ensure that the GuC reported
error capture information matches the i915_gpu_coredump
that is being printed before we print out the corresponding
VMA dumps such as the batch buffer.
v2:
- Ignore - failed CI retest.
Alan Previn (6):
drm/i915/guc: Update GuC ADS size for error capture lists
drm/i915/guc: Populate XE_LP register lists for GuC error state
capture.
drm/i915/guc: Add GuC's error state capture output structures.
drm/i915/guc: Update GuC's log-buffer-state access for error capture.
drm/i915/guc: Copy new GuC error capture logs upon G2H notification.
drm/i915/guc: Print the GuC error capture output register list.
John Harrison (1):
drm/i915/guc: Add basic support for error capture lists
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 +-
.../gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 8 +
drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h | 85 ++
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 55 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 15 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 32 +-
.../gpu/drm/i915/gt/uc/intel_guc_capture.c | 1274 +++++++++++++++++
.../gpu/drm/i915/gt/uc/intel_guc_capture.h | 30 +
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 3 +
drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 43 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 162 ++-
drivers/gpu/drm/i915/gt/uc/intel_guc_log.h | 23 +-
.../gpu/drm/i915/gt/uc/intel_guc_submission.c | 22 +
drivers/gpu/drm/i915/i915_gpu_error.c | 65 +-
drivers/gpu/drm/i915/i915_gpu_error.h | 14 +
16 files changed, 1731 insertions(+), 105 deletions(-)
create mode 100644 drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
create mode 100644 drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
--
2.25.1
More information about the Intel-gfx
mailing list