2019-06-08 01:54:22 +07:00
|
|
|
:orphan:
|
|
|
|
|
2018-07-24 23:33:28 +07:00
|
|
|
=====================
|
|
|
|
MSM Crash Dump Format
|
|
|
|
=====================
|
|
|
|
|
|
|
|
Following a GPU hang the MSM driver outputs debugging information via
|
|
|
|
/sys/kernel/dri/X/show or via devcoredump (/sys/class/devcoredump/dcdX/data).
|
|
|
|
This document describes how the output is formatted.
|
|
|
|
|
|
|
|
Each entry is in the form key: value. Sections headers will not have a value
|
|
|
|
and all the contents of a section will be indented two spaces from the header.
|
|
|
|
Each section might have multiple array entries the start of which is designated
|
|
|
|
by a (-).
|
|
|
|
|
|
|
|
Mappings
|
|
|
|
--------
|
|
|
|
|
|
|
|
kernel
|
|
|
|
The kernel version that generated the dump (UTS_RELEASE).
|
|
|
|
|
|
|
|
module
|
|
|
|
The module that generated the crashdump.
|
|
|
|
|
|
|
|
time
|
|
|
|
The kernel time at crash formated as seconds.microseconds.
|
|
|
|
|
|
|
|
comm
|
|
|
|
Comm string for the binary that generated the fault.
|
|
|
|
|
|
|
|
cmdline
|
|
|
|
Command line for the binary that generated the fault.
|
|
|
|
|
|
|
|
revision
|
|
|
|
ID of the GPU that generated the crash formatted as
|
|
|
|
core.major.minor.patchlevel separated by dots.
|
|
|
|
|
|
|
|
rbbm-status
|
|
|
|
The current value of RBBM_STATUS which shows what top level GPU
|
|
|
|
components are in use at the time of crash.
|
|
|
|
|
|
|
|
ringbuffer
|
|
|
|
Section containing the contents of each ringbuffer. Each ringbuffer is
|
|
|
|
identified with an id number.
|
|
|
|
|
|
|
|
id
|
|
|
|
Ringbuffer ID (0 based index). Each ringbuffer in the section
|
|
|
|
will have its own unique id.
|
|
|
|
iova
|
|
|
|
GPU address of the ringbuffer.
|
|
|
|
|
|
|
|
last-fence
|
|
|
|
The last fence that was issued on the ringbuffer
|
|
|
|
|
|
|
|
retired-fence
|
|
|
|
The last fence retired on the ringbuffer.
|
|
|
|
|
|
|
|
rptr
|
|
|
|
The current read pointer (rptr) for the ringbuffer.
|
|
|
|
|
|
|
|
wptr
|
|
|
|
The current write pointer (wptr) for the ringbuffer.
|
|
|
|
|
2018-07-24 23:33:29 +07:00
|
|
|
size
|
|
|
|
Maximum size of the ringbuffer programmed in the hardware.
|
|
|
|
|
|
|
|
data
|
|
|
|
The contents of the ring encoded as ascii85. Only the used
|
|
|
|
portions of the ring will be printed.
|
|
|
|
|
2018-07-24 23:33:31 +07:00
|
|
|
bo
|
|
|
|
List of buffers from the hanging submission if available.
|
|
|
|
Each buffer object will have a uinque iova.
|
|
|
|
|
|
|
|
iova
|
|
|
|
GPU address of the buffer object.
|
|
|
|
|
|
|
|
size
|
|
|
|
Allocated size of the buffer object.
|
|
|
|
|
|
|
|
data
|
|
|
|
The contents of the buffer object encoded with ascii85. Only
|
|
|
|
Trailing zeros at the end of the buffer will be skipped.
|
|
|
|
|
2018-07-24 23:33:28 +07:00
|
|
|
registers
|
|
|
|
Set of registers values. Each entry is on its own line enclosed
|
|
|
|
by brackets { }.
|
|
|
|
|
|
|
|
offset
|
|
|
|
Byte offset of the register from the start of the
|
|
|
|
GPU memory region.
|
|
|
|
|
|
|
|
value
|
|
|
|
Hexadecimal value of the register.
|
2018-07-24 23:33:30 +07:00
|
|
|
|
|
|
|
registers-hlsq
|
|
|
|
(5xx only) Register values from the HLSQ aperture.
|
|
|
|
Same format as the register section.
|