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, 4 Apr 2021 21:27:24 +0000 (15:27 -0600)
commit1dffee643c779fe3d7959ffd451dc225d3892f7b
tree67f620a4641b5a9951ad07107e7b445839d45bd0
parent7d25aff8e00cedbbe7c8516b1f87ef9af0c6cbd4
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