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.

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.