Skip to content

Commit

Permalink
io_uring: move iopoll ctx fields around
Browse files Browse the repository at this point in the history
Move poll_multi_queue and iopoll_list to the submission cache line, it
doesn't make much sense to keep them separately, and is better place
for it in general.

Signed-off-by: Pavel Begunkov <[email protected]>
Link: https://lore.kernel.org/r/5b03cf7e6652e350e6e70a917eec72ba9f33b97b.1692916914.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
isilence authored and axboe committed Aug 24, 2023
1 parent 0aa7aa5 commit 644c4a7
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions include/linux/io_uring_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,15 @@ struct io_ring_ctx {
struct io_hash_table cancel_table_locked;
struct io_alloc_cache apoll_cache;
struct io_alloc_cache netmsg_cache;

/*
* ->iopoll_list is protected by the ctx->uring_lock for
* io_uring instances that don't use IORING_SETUP_SQPOLL.
* For SQPOLL, only the single threaded io_sq_thread() will
* manipulate the list, hence no extra locking is needed there.
*/
struct io_wq_work_list iopoll_list;
bool poll_multi_queue;
} ____cacheline_aligned_in_smp;

struct {
Expand Down Expand Up @@ -284,20 +293,6 @@ struct io_ring_ctx {
struct wait_queue_head cq_wait;
} ____cacheline_aligned_in_smp;

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.
* For SQPOLL, only the single threaded io_sq_thread() will
* manipulate the list, hence no extra locking is needed there.
*/
struct io_wq_work_list iopoll_list;
} ____cacheline_aligned_in_smp;

/* timeouts */
struct {
spinlock_t timeout_lock;
Expand All @@ -308,6 +303,8 @@ struct io_ring_ctx {

struct io_uring_cqe completion_cqes[16];

spinlock_t completion_lock;

/* IRQ completion list, under ->completion_lock */
struct io_wq_work_list locked_free_list;
unsigned int locked_free_nr;
Expand Down

0 comments on commit 644c4a7

Please sign in to comment.