]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: optimise io_prep_linked_timeout()
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 15 Aug 2021 09:40:26 +0000 (10:40 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 23 Aug 2021 19:10:43 +0000 (13:10 -0600)
commitc1962017f0d60ab863959bbe1eebd459b954eec1
tree362bec352f429aa6711795fa058fd1479b5f0cb8
parente4159d2f736e38a8fa4c6ce852ed0771b72074ec
io_uring: optimise io_prep_linked_timeout()

Linked timeout handling during issuing is heavy, it adds extra
instructions and forces to save the next linked timeout before
io_issue_sqe().

Follwing the same reasoning as in refcounting patches, a request can't
be freed by the time it returns from io_issue_sqe(), so now we don't
need to do io_prep_linked_timeout() in advance, and it can be delayed to
colder paths optimising the generic path.

Also, it should also save quite a lot for requests with linked timeouts
and completed inline on timeout spinlocking + hrtimer_start() +
hrtimer_try_to_cancel() and so on.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/19bfc9a0d26c5c5f1e359f7650afe807ca8ef879.1628981736.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c