Re: [PATCH v3] signal: trace_signal_deliver when signal_group_exit

From: Oleg Nesterov
Date: Tue Apr 23 2019 - 09:35:59 EST


On 04/23, weizhenliang wrote:
>
> On Mon, Apr 22, 2019 at 11:25 PM Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> >On 04/22, Zhenliang Wei wrote:
> >>
> >> --- a/kernel/signal.c
> >> +++ b/kernel/signal.c
> >> @@ -2441,6 +2441,7 @@ bool get_signal(struct ksignal *ksig)
> >> if (signal_group_exit(signal)) {
> >> ksig->info.si_signo = signr = SIGKILL;
> >> sigdelset(&current->pending.signal, SIGKILL);
> >> + trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO, SIG_DFL);
> >> recalc_sigpending();
> >> goto fatal;
> >> }
> >
> >Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
>
> Last time Oleg suggested using SIG_DFL as the third parameter, but its type is 'void (*)(int)', but not expected 'struct k_sigaction *'.

Yes I misread the signature of TRACE_EVENT(signal_deliver), and I thought you at
least compiled the kernel with your patch applied ;)

> How about
> trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO, &sighand->action[signr - 1]);
> ?

sure, this should fix the problem.

Oleg.