[PATCH v4 2/2] arm64: show signal info for global init

Oleg Nesterov oleg at redhat.com
Tue Sep 24 11:36:35 PDT 2024


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.




More information about the linux-arm-kernel mailing list