From: Aaron Durbin <[email protected]>

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 <[email protected]>
Tested-by: Robert Foss <[email protected]>
Signed-off-by: Robert Foss <[email protected]>
---
 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