diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2024-08-07 16:18:11 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2024-08-25 16:27:01 +0200 |
commit | 489b80060cf645e958c4755c4b5032f234409f85 (patch) | |
tree | 9d7557a950043d2f7d8020fa2f759e37c23c0619 /io_uring | |
parent | io_uring/kbuf: turn io_buffer_list booleans into flags (diff) | |
download | linux-489b80060cf645e958c4755c4b5032f234409f85.tar.xz linux-489b80060cf645e958c4755c4b5032f234409f85.zip |
io_uring/napi: refactor __io_napi_busy_loop()
we don't need to set ->napi_prefer_busy_poll if we're not going to poll,
do the checks first and all polling preparation after.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/2ad7ede8cc7905328fc62e8c3805fdb11635ae0b.1723039801.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring')
-rw-r--r-- | io_uring/napi.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/io_uring/napi.c b/io_uring/napi.c index 1de1d4d62925..64fbbceba980 100644 --- a/io_uring/napi.c +++ b/io_uring/napi.c @@ -299,10 +299,11 @@ void __io_napi_adjust_timeout(struct io_ring_ctx *ctx, struct io_wait_queue *iow */ void __io_napi_busy_loop(struct io_ring_ctx *ctx, struct io_wait_queue *iowq) { - iowq->napi_prefer_busy_poll = READ_ONCE(ctx->napi_prefer_busy_poll); + if (ctx->flags & IORING_SETUP_SQPOLL) + return; - if (!(ctx->flags & IORING_SETUP_SQPOLL)) - io_napi_blocking_busy_loop(ctx, iowq); + iowq->napi_prefer_busy_poll = READ_ONCE(ctx->napi_prefer_busy_poll); + io_napi_blocking_busy_loop(ctx, iowq); } /* |