[Mesa-dev] [PATCH 0/2] RadeonSI: Use UMR for hang debugging

Marek Olšák maraeo at gmail.com
Sat Feb 4 22:44:27 UTC 2017


Hi,

These are for our new UMR debugging tool. (see the amd-gfx list)

The idea is that you install umr, do "chmod +s" on it, and when you enable
GALLIUM_DDEBUG in the unpipelined mode and encounter a GPU hang, the hang
report will contain the shader asm annotated with where the GPU waves are
stuck, and it will also print the EXEC mask and the current instruction
in hexadecimal.

There are 4 kinds of GPU hangs we can differentiate between now:
1) A wave is stuck on a shader instruction and doesn't make progress.
   A corrupted descriptor or a resource allocation deadlock are possible
   causes. If a wave is stuck on s_waitcnt, the descriptor might be
   corrupted.
2) Infinite loop. You can tell that from EXEC and also if the PC (program
   counter) is changing if you run UMR multiple times manually.
3) Shader binary corruption. The instruction being executed doesn't match
   the driver's copy of the shader binary.
4) Not a shader hang. The GPU is stuck, but there are no active waves.

Since these have been reviewed by Nicolai already, I'll push them some
time next week if there are no review comments.

Marek


More information about the mesa-dev mailing list