]> git.baikalelectronics.ru Git - kernel.git/commit
task_work: allow TWA_SIGNAL without a rescheduling IPI
authorJens Axboe <axboe@kernel.dk>
Thu, 28 Apr 2022 23:25:16 +0000 (17:25 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 30 Apr 2022 14:39:32 +0000 (08:39 -0600)
commit89d1b8c794b06bc463e3fcc8d4156cdaacc8b73a
tree5eded2436e2690b614d4f28c2344a79e31bd5563
parentf0dbadc169ede6047abbbae4e7d8fa3c25e8ac07
task_work: allow TWA_SIGNAL without a rescheduling IPI

Some use cases don't always need an IPI when sending a TWA_SIGNAL
notification. Add TWA_SIGNAL_NO_IPI, which is just like TWA_SIGNAL, except
it doesn't send an IPI to the target task. It merely sets
TIF_NOTIFY_SIGNAL and wakes up the task.

This can be useful in avoiding a forceful transition to the kernel if the
task is running in userspace. Depending on the task_work in question, it
may be quite fine waiting for the next reschedule or kernel enter anyway,
or the use case may even have other mechanisms for hinting to the task
that a transition may be useful. This can drive more cooperative
scheduling of task_work.

Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/821f42b6-7d91-8074-8212-d34998097de4@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/sched/signal.h
include/linux/task_work.h
kernel/task_work.c