Re: [PATCH v2] xtensa: fix broken TIF_NOTIFY_SIGNAL assembly
From: Jens Axboe
Date: Wed Nov 11 2020 - 16:05:47 EST
On 11/11/20 1:53 PM, Max Filippov wrote:
> TIF_NOTIFY_SIGNAL handling in xtensa assembly is implemented
> incorrectly: there should be a call to do_notify_resume when either
> TIF_SIGPENDING, TIF_NOTIFY_RESUME or TIF_NOTIFY_SIGNAL bit is set in the
> thread_info::flags. The straightforward way to do it would be
>
> _bbsi.l a4, TIF_NEED_RESCHED, 3f
> _bbsi.l a4, TIF_NOTIFY_RESUME, 2f
> _bbsi.l a4, TIF_NOTIFY_SIGNAL, 2f
> _bbci.l a4, TIF_SIGPENDING, 5f
>
> Optimize it a little bit and use bit mask and bnone opcode to skip
> do_notify_resume invocation. Shuffle _TIF_* flags a bit so that used bit
> mask fits into the immediate field of movi opcode.
Thanks - do you mind if I fold this in with a reference to your
changes? Seems like that'd be a better option than leaving it
broken for a bit.
--
Jens Axboe