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? Because you are right, it's usually pretty trivial to wire up the arch code, regardless of whether it uses the generic entry handling or not. -- Jens Axboe