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.

Reply via email to