io_uring: small io_submit_sqe() optimisation
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 14 Jun 2021 22:37:26 +0000 (23:37 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 15 Jun 2021 21:38:40 +0000 (15:38 -0600)
submit_state.link is used only to assemble a link and not used for
actual submission, so clear it before io_queue_sqe() in io_submit_sqe(),
awhile it's hot and in caches and queueing doesn't spoil it. May also
potentially help compiler with spilling or to do other optimisations.

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

index b27734b..64fdeee 100644 (file)
@@ -6616,8 +6616,8 @@ fail_req:
 
                /* last request of a link, enqueue the link */
                if (!(req->flags & (REQ_F_LINK | REQ_F_HARDLINK))) {
-                       io_queue_sqe(head);
                        link->head = NULL;
+                       io_queue_sqe(head);
                }
        } else {
                if (unlikely(ctx->drain_next)) {