I noticed that dpm was storing some information about which phase of
suspend failed inside suspend_stats. That will be useful to help debug
such failures, so automatically dump it after suspend fails.

Signed-off-by: Chris Wilson <[email protected]>
---
 lib/igt_aux.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index ee53559c..0bcf792c 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -803,10 +803,24 @@ static void suspend_via_rtcwake(enum igt_suspend_state 
state)
        snprintf(cmd, sizeof(cmd), "rtcwake -s %d -m %s ",
                 delay, suspend_state_name[state]);
        ret = igt_system(cmd);
-       igt_assert_f(ret == 0,
-                    "rtcwake failed with %i\n"
-                    "Check dmesg for further details.\n",
-                    ret);
+       if (ret) {
+               const char *path = "suspend_stats";
+               char *info;
+               int dir;
+
+               igt_warn("rtcwake failed with %i\n"
+                        "Check dmesg for further details.\n",
+                        ret);
+
+               dir = open(igt_debugfs_mount(), O_RDONLY);
+               info = igt_sysfs_get(dir, path);
+               close(dir);
+               if (info) {
+                       igt_debug("%s:\n%s\n", path, info);
+                       free(info);
+               }
+       }
+       igt_assert_eq(ret, 0);
 }
 
 static void suspend_via_sysfs(int power_dir, enum igt_suspend_state state)
-- 
2.15.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to