Re: [PATCH v2] kernel/exit: do panic earlier to get coredump if global init task exit

From: Christian Brauner
Date: Mon Dec 16 2019 - 12:44:23 EST


On Mon, Dec 16, 2019 at 06:28:41PM +0100, Oleg Nesterov wrote:
> On 12/16, qiwuchen55@xxxxxxxxx wrote:
> >
> > + * If all threads of global init have exited, do panic imeddiately
> > + * to get the coredump to find any clue for init task in userspace.
> > + */
> > + group_dead = atomic_dec_and_test(&tsk->signal->live);
> > + if (unlikely(is_global_init(tsk) && group_dead))
> > + panic("Attempted to kill init! exitcode=0x%08lx\n", code);
> ^^^^
>
> No, we should not throw out the useful info, please use
>
> signal->group_exit_code ?: code
>
> as the current code does.
>
> And I am worried atomic_dec_and_test() is called too early...
>
> Say, acct_process() can report the exit while some sub-thread sleeps

Hm, I'm not following here. I might just be slow. acct_process() doesn't
seem to report exit status and has been called after group_dead before.

Christian