fs/io_uring: Prioritise checking faster conditions first in io_write
authorNoah Goldstein <goldstein.w.n@gmail.com>
Sun, 17 Oct 2021 01:32:29 +0000 (20:32 -0500)
committerJens Axboe <axboe@kernel.dk>
Tue, 19 Oct 2021 11:49:56 +0000 (05:49 -0600)
This commit reorders the conditions in a branch in io_write. The
reorder to check 'ret2 == -EAGAIN' first as checking
'(req->ctx->flags & IORING_SETUP_IOPOLL)' will likely be more
expensive due to 2x memory derefences.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
Link: https://lore.kernel.org/r/20211017013229.4124279-1-goldstein.w.n@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index d5d06e0..11bd0dd 100644 (file)
@@ -3654,7 +3654,7 @@ static int io_write(struct io_kiocb *req, unsigned int issue_flags)
                goto done;
        if (!force_nonblock || ret2 != -EAGAIN) {
                /* IOPOLL retry should happen for io-wq threads */
-               if ((req->ctx->flags & IORING_SETUP_IOPOLL) && ret2 == -EAGAIN)
+               if (ret2 == -EAGAIN && (req->ctx->flags & IORING_SETUP_IOPOLL))
                        goto copy_iov;
 done:
                kiocb_done(kiocb, ret2, issue_flags);