io_uring: move 'poll_multi_queue' bool in io_ring_ctx
authorJens Axboe <axboe@kernel.dk>
Wed, 4 Jan 2023 20:49:54 +0000 (13:49 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 4 Jan 2023 20:49:54 +0000 (13:49 -0700)
The cacheline section holding this variable has two gaps, where one is
caused by this bool not packing well with structs. This causes it to
blow into the next cacheline. Move the variable, shrinking io_ring_ctx
by a full cacheline in size.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/io_uring_types.h

index dcd8a56..128a67a 100644 (file)
@@ -292,6 +292,8 @@ struct io_ring_ctx {
        struct {
                spinlock_t              completion_lock;
 
+               bool                    poll_multi_queue;
+
                /*
                 * ->iopoll_list is protected by the ctx->uring_lock for
                 * io_uring instances that don't use IORING_SETUP_SQPOLL.
@@ -300,7 +302,6 @@ struct io_ring_ctx {
                 */
                struct io_wq_work_list  iopoll_list;
                struct io_hash_table    cancel_table;
-               bool                    poll_multi_queue;
 
                struct llist_head       work_llist;