Re: [PATCH] sched: __fatal_signal_pending() should also check PF_EXITING

From: Oleg Nesterov
Date: Wed Jul 27 2022 - 15:22:27 EST


On 07/27, Tycho Andersen wrote:
>
> On Wed, Jul 27, 2022 at 07:55:39PM +0200, Oleg Nesterov wrote:
> > On 07/27, Tycho Andersen wrote:
> > >
> > > Hi all,
> > >
> > > On Wed, Jul 20, 2022 at 08:54:59PM -0500, Serge E. Hallyn wrote:
> > > > Oh - I didn't either - checking the sigkill in shared signals *seems*
> > > > legit if they can be put there - but since you posted the new patch I
> > > > assumed his reasoning was clear to you. I know Eric's busy, cc:ing Oleg
> > > > for his interpretation too.
> > >
> > > Any thoughts on this?
> >
> > Cough... I don't know what can I say except I personally dislike this
> > patch no matter what ;)
> >
> > And I do not understand how can this patch help. OK, a single-threaded
> > PF_EXITING task sleeps in TASK_KILLABLE. send_signal_locked() won't
> > wake it up anyway?
> >
> > I must have missed something.
>
> What do you think of the patch in
> https://lore.kernel.org/all/YsyHMVLuT5U6mm+I@netflix/ ? Hopefully that
> has an explanation that makes more sense.

Sorry, I still do not follow. Again, I can easily miss something. But how
can ANY change in __fatal_signal_pending() ensure that SIGKILL will wakeup
a PF_EXITING task which already sleeps in TASK_KILLABLE state? or even set
TIF_SIGPENDING as the changelog states?

Oleg.