From: Aaron Durbin <adur...@chromium.org>

When the panic path is taken for khungtaskd dump all
tasks with the UNINTERUPTIBLE state. That way, any
inter-dependent tasks that caused one another to hang
will be saved in the crash output.

Signed-off-by: Aaron Durbin <adur...@chromium.org>
Tested-by: Robert Foss <robert.f...@collabora.com>
Signed-off-by: Robert Foss <robert.f...@collabora.com>
---
 kernel/hung_task.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/hung_task.c b/kernel/hung_task.c
index d234022..946caf9 100644
--- a/kernel/hung_task.c
+++ b/kernel/hung_task.c
@@ -122,6 +122,8 @@ static void check_hung_task(struct task_struct *t, unsigned 
long timeout)
        touch_nmi_watchdog();
 
        if (sysctl_hung_task_panic) {
+               /* Dump all tasks. */
+               show_state_filter(TASK_UNINTERRUPTIBLE);
                trigger_all_cpu_backtrace();
                panic("hung_task: blocked tasks");
        }
-- 
2.7.4

Reply via email to