OSDN Git Service

io_uring: remove drain_active check from hot path
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 24 Sep 2021 20:59:57 +0000 (21:59 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 19 Oct 2021 11:49:53 +0000 (05:49 -0600)
commit2a56a9bd64dbdff4fe5cbe00b20014da07694a78
tree8b88d171b8ba8e2fa791465b5c15400d6dd4d863
parentf15a3431775a598ed89028acee334200160cc2d6
io_uring: remove drain_active check from hot path

req->ctx->active_drain is a bit too expensive, partially because of two
dereferences. Do a trick, if we see it set in io_init_req(), set
REQ_F_FORCE_ASYNC and it automatically goes through a slower path where
we can catch it. It's nearly free to do in io_init_req() because there
is already ->restricted check and it's in the same byte of a bitmask.

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