Re: [PATCH 4/5] x86: wire up TIF_NOTIFY_SIGNAL

From: Thomas Gleixner
Date: Fri Oct 16 2020 - 05:55:28 EST


On Thu, Oct 15 2020 at 16:34, Oleg Nesterov wrote:
> On 10/15, Thomas Gleixner wrote:
>> Instead of adding this to every architectures signal magic, we can
>> handle TIF_NOTIFY_SIGNAL in the core code:
>>
>> static void handle_singal_work(ti_work, regs)
>> {
>> if (ti_work & _TIF_NOTIFY_SIGNAL)
>> tracehook_notify_signal();
>>
>> arch_do_signal(ti_work, regs);
>> }
>>
>> loop {
>> if (ti_work & (SIGPENDING | NOTIFY_SIGNAL))
>> handle_signal_work(ti_work, regs);
>> }
>
> To me this looks like unnecessary complication. We need to change
> every architecture anyway, how can this helper help?

This is about the generic entry code. For the users of that it makes
absolutely no sense to have that in architecture code.

Something which every architecture needs to do in the exactly same way
goes into the common code. If not, you can spare the exercise of having
common code in the first place.

Also arch_do_signal() becomes a misnomer with this new magic.

static void handle_signal_work(ti_work, regs)
{
if (ti_work & _TIF_NOTIFY_SIGNAL)
tracehook_notify_signal();

arch_do_signal_or_restart(ti_work, regs);
}

which makes it entirely clear what this is about.

Thanks,

tglx