mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
radv: re-order GPU hang report dumps by usefulness
In case the GPU recover, it's probably better to dump useful info first. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233>
This commit is contained in:
parent
719b9b3e27
commit
9516f9369e
1 changed files with 32 additions and 32 deletions
|
|
@ -638,6 +638,38 @@ radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_cmdbuf *cs)
|
|||
abort();
|
||||
}
|
||||
|
||||
/* Dump pipeline state. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "pipeline.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_queue_state(queue, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump UMR ring. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "umr_ring.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_umr_ring(queue, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump UMR waves. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "umr_waves.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_umr_waves(queue, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump debug registers. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "registers.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_debug_registers(device, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump VM fault info. */
|
||||
if (vm_fault_occurred) {
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "vm_fault.log");
|
||||
|
|
@ -674,38 +706,6 @@ radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_cmdbuf *cs)
|
|||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump UMR ring. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "umr_ring.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_umr_ring(queue, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump UMR waves. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "umr_waves.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_umr_waves(queue, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump debug registers. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "registers.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_debug_registers(device, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
/* Dump pipeline state. */
|
||||
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "pipeline.log");
|
||||
f = fopen(dump_path, "w+");
|
||||
if (f) {
|
||||
radv_dump_queue_state(queue, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
fprintf(stderr, "radv: GPU hang report saved to '%s'!\n", dump_dir);
|
||||
abort();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue