MSM 崩溃转储格式¶
在 GPU 挂起后,MSM 驱动程序通过 /sys/kernel/dri/X/show 或 devcoredump (/sys/class/devcoredump/dcdX/data) 输出调试信息。本文档描述了输出的格式。
每个条目都采用“键: 值”的形式。节标题没有值,节的所有内容都将从标题缩进两个空格。每个节可能包含多个数组条目,其开头由一个 (-) 表示。
映射¶
- kernel
生成转储的内核版本 (UTS_RELEASE)。
- module
生成崩溃转储的模块。
- time
崩溃时的内核时间,格式为秒.微秒。
- comm
生成故障的二进制文件的 comm 字符串。
- cmdline
生成故障的二进制文件的命令行。
- revision
生成崩溃的 GPU ID,格式为核心.主版本号.次版本号.补丁级别,用点分隔。
- rbbm-status
RBBM_STATUS 的当前值,显示崩溃时正在使用的顶级 GPU 组件。
- ringbuffer
包含每个环形缓冲区内容的节。每个环形缓冲区都通过一个 ID 号标识。
- id
环形缓冲区 ID(基于 0 的索引)。该节中的每个环形缓冲区都将拥有其唯一的 ID。
- iova
环形缓冲区的 GPU 地址。
- last-fence
在环形缓冲区上发出的最后一个栅栏
- retired-fence
在环形缓冲区上退役的最后一个栅栏。
- rptr
环形缓冲区的当前读指针 (rptr)。
- wptr
环形缓冲区的当前写指针 (wptr)。
- size
硬件中编程的环形缓冲区的最大大小。
- data
环形缓冲区的内容,以 ascii85 编码。只会打印环形缓冲区的已用部分。
- bo
如果可用,挂起的提交中的缓冲区列表。每个缓冲区对象都将拥有一个唯一的 iova。
- iova
缓冲区对象的 GPU 地址。
- size
缓冲区对象的分配大小。
- data
缓冲区对象的内容,用 ascii85 编码。只会跳过缓冲区末尾的零。
- registers
一组寄存器值。每个条目都在自己的行上,并用括号 { } 括起来。
- offset
寄存器距离 GPU 内存区域起始的字节偏移量。
- value
寄存器的十六进制值。
- registers-hlsq
(仅限 5xx)来自 HLSQ 孔径的寄存器值。格式与寄存器节相同。