Well, can't comment, I leave this to the arch/arm64/ maintainers. but let me add a bit of spam just for the record, On 09/24, qiwu.chen wrote: > > --- a/arch/arm64/kernel/traps.c > +++ b/arch/arm64/kernel/traps.c > @@ -247,12 +247,20 @@ static void arm64_show_signal(int signo, const char *str) > unsigned long esr = tsk->thread.fault_code; > struct pt_regs *regs = task_pt_regs(tsk); > > + /* > + * The signal sent to the global init needs to be shown, > + * which is useful for debugging kill init issue. > + */ > + if (unlikely(is_global_init(tsk))) > + goto dump; > + > /* Leave if the signal won't be shown */ > if (!show_unhandled_signals || > !unhandled_signal(tsk, signo) || > !__ratelimit(&rs)) > return; > > +dump: So what does this patch try to do? Note that unhandled_signal(tsk) returns true if is_global_init(tsk). So it seems that this patch just tries to bypass the show_unhandled_signals and __ratelimit() checks? Or what? OTOH. The is_global_init() check in unhandled_signal() (which predates the git history) doesn't look right to me. If init has a handler for, say, SIGSEGV, why should the kernel complain? I need to recheck this logic... Oleg.