diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2023-08-24 23:53:32 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-08-24 17:16:19 -0600 |
commit | 2af89abda7d9c2aeb573677e2c498ddb09f8058a (patch) | |
tree | a0bb96ee8f21b3aa48ea8a319a12515e768aa631 /include/uapi/linux/io_uring.h | |
parent | e5598d6ae62626d261b046a2f19347c38681ff51 (diff) | |
download | linux-2af89abda7d9c2aeb573677e2c498ddb09f8058a.tar.gz linux-2af89abda7d9c2aeb573677e2c498ddb09f8058a.tar.bz2 linux-2af89abda7d9c2aeb573677e2c498ddb09f8058a.zip |
io_uring: add option to remove SQ indirection
Not many aware, but io_uring submission queue has two levels. The first
level usually appears as sq_array and stores indexes into the actual SQ.
To my knowledge, no one has ever seriously used it, nor liburing exposes
it to users. Add IORING_SETUP_NO_SQARRAY, when set we don't bother
creating and using the sq_array and SQ heads/tails will be pointing
directly into the SQ. Improves memory footprint, in term of both
allocations as well as cache usage, and also should make io_get_sqe()
less branchy in the end.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/0ffa3268a5ef61d326201ff43a233315c96312e0.1692916914.git.asml.silence@gmail.com
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 | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index 9fc7195f25df..8e61f8b7c2ce 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -185,6 +185,11 @@ enum { */ #define IORING_SETUP_REGISTERED_FD_ONLY (1U << 15) +/* + * Removes indirection through the SQ index array. + */ +#define IORING_SETUP_NO_SQARRAY (1U << 16) + enum io_uring_op { IORING_OP_NOP, IORING_OP_READV, |