Mesa (master): radv: append a time string to the hang report dump directory

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Nov 23 08:27:52 UTC 2020


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Fri Nov 20 09:19:55 2020 +0100

radv: append a time string to the hang report dump directory

Using the PID only isn't really informative.

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/7706>

---

 docs/envvars.rst            |  4 ++--
 src/amd/vulkan/radv_debug.c | 16 ++++++++++++----
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/docs/envvars.rst b/docs/envvars.rst
index e0c73ea4500..b91e682ec16 100644
--- a/docs/envvars.rst
+++ b/docs/envvars.rst
@@ -557,8 +557,8 @@ RADV driver environment variables
       Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it
       but normally does not deem it beneficial.
    ``hang``
-      enable GPU hangs detection and dump a report to $HOME/radv_dumps_<pid>
-      if a GPU hang is detected
+      enable GPU hangs detection and dump a report to
+      $HOME/radv_dumps_<pid>_<time> if a GPU hang is detected
    ``img``
       Print image info
    ``info``
diff --git a/src/amd/vulkan/radv_debug.c b/src/amd/vulkan/radv_debug.c
index cfd1cb76dcc..ee8dc036362 100644
--- a/src/amd/vulkan/radv_debug.c
+++ b/src/amd/vulkan/radv_debug.c
@@ -616,11 +616,19 @@ radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_cmdbuf *cs)
 
 	fprintf(stderr, "radv: GPU hang detected...\n");
 
-	/* Create a directory into $HOME/radv_dumps_<pid> to save various
-	 * debugging info about that GPU hang.
+	/* Create a directory into $HOME/radv_dumps_<pid>_<time> to save
+	 * various debugging info about that GPU hang.
 	 */
-	snprintf(dump_dir, sizeof(dump_dir), "%s/"RADV_DUMP_DIR"_%d",
-		 debug_get_option("HOME", "."), getpid());
+	struct tm *timep, result;
+	time_t raw_time;
+	char buf_time[128];
+
+	time(&raw_time);
+	timep = localtime_r(&raw_time, &result);
+	strftime(buf_time, sizeof(buf_time), "%Y.%m.%d_%H.%M.%S", timep);
+
+	snprintf(dump_dir, sizeof(dump_dir), "%s/"RADV_DUMP_DIR"_%d_%s",
+		 debug_get_option("HOME", "."), getpid(), buf_time);
 	if (mkdir(dump_dir, 0774) && errno != EEXIST) {
 		fprintf(stderr, "radv: can't create directory '%s' (%i).\n",
 			dump_dir, errno);



More information about the mesa-commit mailing list