Messages in this thread | | | Subject | Re: [PATCH v2] xtensa: fix broken TIF_NOTIFY_SIGNAL assembly | From | Jens Axboe <> | Date | Thu, 12 Nov 2020 08:45:01 -0700 |
| |
On 11/12/20 2:12 AM, Max Filippov wrote: > On Wed, Nov 11, 2020 at 1:05 PM Jens Axboe <axboe@kernel.dk> wrote: >> >> 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. > > Sure Jens, by all means!
Thanks! Done.
-- Jens Axboe
| |