| :orphan: | 
 |  | 
 | ===================== | 
 | 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. |