Mesa (master): radv: re-order GPU hang report dumps by usefulness

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Oct 23 07:45:29 UTC 2020


Module: Mesa
Branch: master
Commit: 9516f9369e4e9f16748afff81c02b9f225c0f124
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9516f9369e4e9f16748afff81c02b9f225c0f124

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Tue Oct 20 11:40:09 2020 +0200

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 at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7233>

---

 src/amd/vulkan/radv_debug.c | 64 ++++++++++++++++++++++-----------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/amd/vulkan/radv_debug.c b/src/amd/vulkan/radv_debug.c
index 48727f4ee80..c5ab5387a80 100644
--- a/src/amd/vulkan/radv_debug.c
+++ b/src/amd/vulkan/radv_debug.c
@@ -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();
 }



More information about the mesa-commit mailing list