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 ;) Oleg.