FAILED: patch "[PATCH] io_uring: optimize io_uring_task layout" failed to apply to 5.15-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 4a0fef62788b69df09267c8e3f3f11d4bb9d50e7 Mon Sep 17 00:00:00 2001
From: Pavel Begunkov <[email protected]>
Date: Mon, 20 Jun 2022 15:27:35 +0100
Subject: [PATCH] io_uring: optimize io_uring_task layout
task_work bits of io_uring_task are split into two cache lines causing extra cache bouncing, place them into a separate cache line. Also move the most used submission path fields closer together, so there are hot.
Cc [email protected] # 5.15+
Signed-off-by Pavel Begunkov <[email protected]>
Signed-off-by Jens Axboe <[email protected]>
io_uring/tctx.h +18 -16
@@ -7,22 +7,24 @@struct io_uring_task {/* submission side */ -int cached_refs; -struct xarray xa; -struct wait_queue_head wait; -const struct io_ring_ctx *last; -struct io_wq *io_wq; -struct percpu_counter inflight; -atomic_t inflight_tracked; -atomic_t in_idle; - -spinlock_t task_lock; -struct io_wq_work_list task_list; -struct io_wq_work_list prio_task_list; -struct callback_head task_work; -bool task_running; - -struct file *registered_rings[IO_RINGFD_REG_MAX ]; +int cached_refs; +const struct io_ring_ctx *last; +struct io_wq *io_wq; +struct file *registered_rings[IO_RINGFD_REG_MAX ]; + +struct xarray xa; +struct wait_queue_head wait; +atomic_t in_idle; +atomic_t inflight_tracked; +struct percpu_counter inflight; + +struct {/* task_work */ +spinlock_t task_lock; +bool task_running; +struct io_wq_work_list task_list; +struct io_wq_work_list prio_task_list; +struct callback_head task_work; + }____cacheline_aligned_in_smp ; };struct io_tctx_node {