io_uring: optimise io_req_task_work_add()
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 19 Mar 2021 17:22:44 +0000 (17:22 +0000)
committerJens Axboe <axboe@kernel.dk>
Sun, 11 Apr 2021 23:41:59 +0000 (17:41 -0600)
commitc15b79dee51bd73d56fe526a779e8fbc02b09e6c
treecaf7de1d56bf635ec14f744847e6171c273622e8
parente1d767f078b88423bb8ed179fbfe3369395e10f8
io_uring: optimise io_req_task_work_add()

Inline io_task_work_add() into io_req_task_work_add(). They both work
with a request, so keeping them separate doesn't make things much more
clear, but merging allows optimise it. Apart from small wins like not
reading req->ctx or not calculating @notify in the hot path, i.e. with
tctx->task_state set, it avoids doing wake_up_process() for every single
add, but only after actually done task_work_add().

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c