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 formatted 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. 
- 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. 
 
- 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. 
 
- 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. 
 
- registers-hlsq
- (5xx only) Register values from the HLSQ aperture. Same format as the register section.