From: Pavel Begunkov <asml.silence@gmail.com>
To: io-uring@vger.kernel.org
Cc: asml.silence@gmail.com
Subject: [RFC 00/16] Introduce ring flexible placement
Date: Thu, 6 Nov 2025 17:01:39 +0000 [thread overview]
Message-ID: <cover.1762447538.git.asml.silence@gmail.com> (raw)
This patchset allows the user to put rings and ring headers
into the memory/parameter region and specify offsets where they
should lie.
It solves a problem where the headers are placed before ring entries,
which 1. usually padded wasting memory and using more cache lines
than a smarter placement would need. And 2. it grows the region size
to a non pow2. It's also handy to have a way to put everything into
a single region.
It's implemented for SQ and CQ, but planned to be supported by zcrx
as well. There is a bunch of cleanups (1-13), it'd make sense to
merge some of them separately. It also adds an ability to register
a memory region during setup and not via a registration (Patch 15).
And the placement handling is in Patch 16.
Pavel Begunkov (16):
io_uring: add helper calculating region byte size
io_uring: pass sq entires in the params struct
io_uring: use mem_is_zero to check ring params
io_uring: move flags check to io_uring_sanitise_params
io_uring: introduce struct io_ctx_config
io_uring: split out config init helper
io_uring: add structure keeping ring offsets
io_uring: pre-calculate scq offsets
io_uring: inroduce helper for setting user offset
io_uring: separate cqe array from headers
io_uring/region: introduce io_region_slice
io_uring: convert pointer init to io_region_slice
io_uring: refactor rings_size()
io_uring: extract io_create_mem_region
io_uring: allow creating mem region at setup
io_uring: introduce SCQ placement
include/linux/io_uring_types.h | 17 +-
include/uapi/linux/io_uring.h | 21 +-
io_uring/fdinfo.c | 2 +-
io_uring/io_uring.c | 341 +++++++++++++++++++++++----------
io_uring/io_uring.h | 34 +++-
io_uring/memmap.c | 16 +-
io_uring/memmap.h | 7 +
io_uring/register.c | 75 ++++----
8 files changed, 360 insertions(+), 153 deletions(-)
--
2.49.0
next reply other threads:[~2025-11-06 17:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-06 17:01 Pavel Begunkov [this message]
2025-11-06 17:01 ` [RFC 01/16] io_uring: add helper calculating region byte size Pavel Begunkov
2025-11-06 17:01 ` [RFC 02/16] io_uring: pass sq entires in the params struct Pavel Begunkov
2025-11-06 17:01 ` [RFC 03/16] io_uring: use mem_is_zero to check ring params Pavel Begunkov
2025-11-06 17:01 ` [RFC 04/16] io_uring: move flags check to io_uring_sanitise_params Pavel Begunkov
2025-11-06 17:01 ` [RFC 05/16] io_uring: introduce struct io_ctx_config Pavel Begunkov
2025-11-06 17:01 ` [RFC 06/16] io_uring: split out config init helper Pavel Begunkov
2025-11-06 17:01 ` [RFC 07/16] io_uring: add structure keeping ring offsets Pavel Begunkov
2025-11-06 17:01 ` [RFC 08/16] io_uring: pre-calculate scq offsets Pavel Begunkov
2025-11-06 17:01 ` [RFC 09/16] io_uring: inroduce helper for setting user offset Pavel Begunkov
2025-11-06 17:01 ` [RFC 10/16] io_uring: separate cqe array from headers Pavel Begunkov
2025-11-06 17:01 ` [RFC 11/16] io_uring/region: introduce io_region_slice Pavel Begunkov
2025-11-06 17:01 ` [RFC 12/16] io_uring: convert pointer init to io_region_slice Pavel Begunkov
2025-11-06 17:01 ` [RFC 13/16] io_uring: refactor rings_size() Pavel Begunkov
2025-11-06 17:01 ` [RFC 14/16] io_uring: extract io_create_mem_region Pavel Begunkov
2025-11-06 17:01 ` [RFC 15/16] io_uring: allow creating mem region at setup Pavel Begunkov
2025-11-06 17:01 ` [RFC 16/16] io_uring: introduce SCQ placement Pavel Begunkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1762447538.git.asml.silence@gmail.com \
--to=asml.silence@gmail.com \
--cc=io-uring@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.