Currently, it's hard to debug panic issues caused by kill init, since there is no debug info from user mode in current panic msg such as the user_regs and maps info. This patch dumps current pt_regs info on global init exit for debugging. Signed-off-by: qiwu.chen <qiwu.chen@xxxxxxxxxxxxx> --- kernel/exit.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index 0d62a53605df..3d5aa88ba517 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -11,6 +11,7 @@ #include <linux/sched/mm.h> #include <linux/sched/stat.h> #include <linux/sched/task.h> +#include <linux/sched/debug.h> #include <linux/sched/task_stack.h> #include <linux/sched/cputime.h> #include <linux/interrupt.h> @@ -847,10 +848,12 @@ void __noreturn do_exit(long code) * If the last thread of global init has exited, panic * immediately to get a useable coredump. */ - if (unlikely(is_global_init(tsk))) + if (unlikely(is_global_init(tsk))) { + /* dump the pt_regs of current thread for debugging. */ + show_regs(task_pt_regs(tsk)); panic("Attempted to kill init! exitcode=0x%08x\n", tsk->signal->group_exit_code ?: (int)code); - + } #ifdef CONFIG_POSIX_TIMERS hrtimer_cancel(&tsk->signal->real_timer); exit_itimers(tsk); -- 2.25.1