io_uring: use TWA_SIGNAL_NO_IPI if IORING_SETUP_COOP_TASKRUN is used
authorJens Axboe <axboe@kernel.dk>
Fri, 22 Apr 2022 21:05:31 +0000 (15:05 -0600)
committerJens Axboe <axboe@kernel.dk>
Thu, 28 Apr 2022 23:22:45 +0000 (17:22 -0600)
commit55c4596d05077b619ff53e3a4919c0548303c7fd
tree22bddf48f622543c9d7b61dab0b4fb8d5d2c255b
parent50dec431129930021e9658a671b5afd70414ac34
io_uring: use TWA_SIGNAL_NO_IPI if IORING_SETUP_COOP_TASKRUN is used

If this is set, io_uring will never use an IPI to deliver a task_work
notification. This can be used in the common case where a single task or
thread communicates with the ring, and doesn't rely on
io_uring_cqe_peek().

This provides a noticeable win in performance, both from eliminating
the IPI itself, but also from avoiding interrupting the submitting
task unnecessarily.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/uapi/linux/io_uring.h