msm-crash-dump.rst 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. :orphan:
  2. =====================
  3. MSM Crash Dump Format
  4. =====================
  5. Following a GPU hang the MSM driver outputs debugging information via
  6. /sys/kernel/dri/X/show or via devcoredump (/sys/class/devcoredump/dcdX/data).
  7. This document describes how the output is formatted.
  8. Each entry is in the form key: value. Sections headers will not have a value
  9. and all the contents of a section will be indented two spaces from the header.
  10. Each section might have multiple array entries the start of which is designated
  11. by a (-).
  12. Mappings
  13. --------
  14. kernel
  15. The kernel version that generated the dump (UTS_RELEASE).
  16. module
  17. The module that generated the crashdump.
  18. time
  19. The kernel time at crash formated as seconds.microseconds.
  20. comm
  21. Comm string for the binary that generated the fault.
  22. cmdline
  23. Command line for the binary that generated the fault.
  24. revision
  25. ID of the GPU that generated the crash formatted as
  26. core.major.minor.patchlevel separated by dots.
  27. rbbm-status
  28. The current value of RBBM_STATUS which shows what top level GPU
  29. components are in use at the time of crash.
  30. ringbuffer
  31. Section containing the contents of each ringbuffer. Each ringbuffer is
  32. identified with an id number.
  33. id
  34. Ringbuffer ID (0 based index). Each ringbuffer in the section
  35. will have its own unique id.
  36. iova
  37. GPU address of the ringbuffer.
  38. last-fence
  39. The last fence that was issued on the ringbuffer
  40. retired-fence
  41. The last fence retired on the ringbuffer.
  42. rptr
  43. The current read pointer (rptr) for the ringbuffer.
  44. wptr
  45. The current write pointer (wptr) for the ringbuffer.
  46. size
  47. Maximum size of the ringbuffer programmed in the hardware.
  48. data
  49. The contents of the ring encoded as ascii85. Only the used
  50. portions of the ring will be printed.
  51. bo
  52. List of buffers from the hanging submission if available.
  53. Each buffer object will have a uinque iova.
  54. iova
  55. GPU address of the buffer object.
  56. size
  57. Allocated size of the buffer object.
  58. data
  59. The contents of the buffer object encoded with ascii85. Only
  60. Trailing zeros at the end of the buffer will be skipped.
  61. registers
  62. Set of registers values. Each entry is on its own line enclosed
  63. by brackets { }.
  64. offset
  65. Byte offset of the register from the start of the
  66. GPU memory region.
  67. value
  68. Hexadecimal value of the register.
  69. registers-hlsq
  70. (5xx only) Register values from the HLSQ aperture.
  71. Same format as the register section.