Re: [PATCH 3/5] kernel: add support for TIF_NOTIFY_SIGNAL

Oleg Nesterov
2020-10-15T14:47:28Z

On 10/15, Jens Axboe wrote:
>
> On 10/15/20 8:37 AM, Oleg Nesterov wrote:
> > On 10/15, Jens Axboe wrote:
> >>
> >> On 10/15/20 8:31 AM, Oleg Nesterov wrote:
> >>> On 10/15, Jens Axboe wrote:
> >>>>
> >>>> static inline int signal_pending(struct task_struct *p)
> >>>> {
> >>>> +#if defined(CONFIG_GENERIC_ENTRY) && defined(TIF_NOTIFY_SIGNAL)
> >>>> + /*
> >>>> + * TIF_NOTIFY_SIGNAL isn't really a signal, but it requires the same
> >>>> + * behavior in terms of ensuring that we break out of wait loops
> >>>> + * so that notify signal callbacks can be processed.
> >>>> + */
> >>>> + if (unlikely(test_tsk_thread_flag(p, TIF_NOTIFY_SIGNAL)))
> >>>> + return 1;
> >>>> +#endif
> >>>> return task_sigpending(p);
> >>>> }
> >>>
> >>> I don't understand why does this version requires CONFIG_GENERIC_ENTRY.
> >>>
> >>> Afaics, it is very easy to change all the non-x86 arches to support
> >>> TIF_NOTIFY_SIGNAL, but it is not trivial to change them all to use
> >>> kernel/entry/common.c ?
> >>
> >> I think that Thomas wants to gate TIF_NOTIFY_SIGNAL on conversion to
> >> the generic entry code?
> >
> > Then I think TIF_NOTIFY_SIGNAL will be never fully supported ;)
>
> That is indeed a worry. From a functionality point of view, with the
> major archs supporting it, I'm not too worried about that side. But it
> does mean that we'll be stuck with the ifdeffery forever, which isn't
> great.

plus we can't kill the ugly JOBCTL_TASK_WORK.

Oleg.