From: Pavel Begunkov Date: Wed, 7 Aug 2024 14:18:11 +0000 (+0100) Subject: io_uring/napi: refactor __io_napi_busy_loop() X-Git-Tag: v6.12-rc1~205^2~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=489b80060cf645e958c4755c4b5032f234409f85;p=thirdparty%2Fkernel%2Flinux.git 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 Link: https://lore.kernel.org/r/2ad7ede8cc7905328fc62e8c3805fdb11635ae0b.1723039801.git.asml.silence@gmail.com Signed-off-by: Jens Axboe --- diff --git a/io_uring/napi.c b/io_uring/napi.c index 1de1d4d629254..64fbbceba9800 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); } /*