diff options
author | Jens Axboe <axboe@kernel.dk> | 2021-06-17 19:19:54 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-06-17 19:25:50 +0300 |
commit | fe76421d1da1dcdb3a2cd8428ac40106bff28bc0 (patch) | |
tree | dc590c0c33f23e65a0e11cceb7be870944d0360a /include/uapi/linux/io_uring.h | |
parent | 0e03496d1967abf1ebb151a24318c07d07f41f7f (diff) | |
download | linux-fe76421d1da1dcdb3a2cd8428ac40106bff28bc0.tar.xz |
io_uring: allow user configurable IO thread CPU affinity
io-wq defaults to per-node masks for IO workers. This works fine by
default, but isn't particularly handy for workloads that prefer more
specific affinities, for either performance or isolation reasons.
This adds IORING_REGISTER_IOWQ_AFF that allows the user to pass in a CPU
mask that is then applied to IO thread workers, and an
IORING_UNREGISTER_IOWQ_AFF that simply resets the masks back to the
default of per-node.
Note that no care is given to existing IO threads, they will need to go
through a reschedule before the affinity is correct if they are already
running or sleeping.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/uapi/linux/io_uring.h')
-rw-r--r-- | include/uapi/linux/io_uring.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index 162ff99ed2cb..f1f9ac114b51 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -306,6 +306,10 @@ enum { IORING_REGISTER_BUFFERS2 = 15, IORING_REGISTER_BUFFERS_UPDATE = 16, + /* set/clear io-wq thread affinities */ + IORING_REGISTER_IOWQ_AFF = 17, + IORING_UNREGISTER_IOWQ_AFF = 18, + /* this goes last */ IORING_REGISTER_LAST }; |