[Freedreno] [RFC 0/4] drm/msm: GPU crash state

Jordan Crouse jcrouse at codeaurora.org
Fri Jan 5 18:00:17 UTC 2018


This is a request for comment on code to store and dump a GPU state
a hang with inspiration from the very good i915 GPU error state and
the binary GPU snapshot in the downstream kernel.

The goal is to store and provide enough information to debug software
and hardware issues on the Adreno hardware in a semi human-readable
format that can also be parsed by scripts.

The goal for this request for comment is to get some consensus
about the format and work through some of the technical issues.

The first patch is a bit of a standalone - it finally consolidates
the 'show' and 'dump' code (where show goes to a seq_file and 'dump'
goes to the kernel log) through judicious use of drm_printer.

The next patch captures the ringbuffer and register information the
same way that 'show' does - most of the code is generic but eventually
will get more platform specific as we add new chunks of data
(especially for a5xx and beyond).

The third patch converts the existing show function to use the state
instead of reading the data directly. This gets a little big ugly
because due to the first patch, if we don't capture a state here then
nothing gets printed out.

The final patch prints the crash state through its own debugfs node.
Only one crash state is captured at a time and it persists until the
state is cleared by a write to the debugfs node.

After we mostly agree on the behavior and design of the code the next
step will be to pull over more state for 5xx including ringbuffer contents,
active commands and buffers, shader caches and other debug information.

Jordan Crouse (4):
  drm/msm: gpu: Use drm_printer to consolidate the show/dump code
  drm/msm: gpu: Capture the state of the GPU
  drm/msm: gpu: Convert the GPU show functions to use the GPU state
  drm/msm: gpu: Capture the GPU state on a GPU hang

 drivers/gpu/drm/msm/adreno/a3xx_gpu.c   |  43 +++++-----
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c   |  39 ++++-----
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c   |  44 +++++-----
 drivers/gpu/drm/msm/adreno/adreno_gpu.c | 138 +++++++++++++++++++-------------
 drivers/gpu/drm/msm/adreno/adreno_gpu.h |  10 ++-
 drivers/gpu/drm/msm/msm_debugfs.c       |  78 ++++++++++++++++--
 drivers/gpu/drm/msm/msm_gpu.h           |  64 ++++++++++++++-
 7 files changed, 296 insertions(+), 120 deletions(-)

-- 
1.9.1



More information about the Freedreno mailing list