| From: |
| Pavel Begunkov <asml.silence-AT-gmail.com> |
| To: |
| io-uring-AT-vger.kernel.org |
| Subject: |
| [PATCH v2 00/18] kernel allocated regions and convert memmap to regions |
| Date: |
| Sun, 24 Nov 2024 21:12:17 +0000 |
| Message-ID: |
| <cover.1732481694.git.asml.silence@gmail.com> |
| Cc: |
| asml.silence-AT-gmail.com |
| Archive-link: |
| Article |
The first part of the series (Patches 1-11) implement kernel allocated
regions, which is the classical way SQ/CQ are created. It should be
straightforward with simple preparations patches and cleanups. The main
part is Patch 10, which internally implements kernel allocations, and
Patch 11 that implementing the mmap part and exposes it to reg-wait /
parameter region users.
The second part (Patches 12-18) conver SQ, CQ and provided buffers rings
to regions, which carves a common path for all of them and removes
duplication.
Pavel Begunkov (18):
io_uring: rename ->resize_lock
io_uring/rsrc: export io_check_coalesce_buffer
io_uring/memmap: add internal region flags
io_uring/memmap: flag regions with user pages
io_uring/memmap: account memory before pinning
io_uring/memmap: reuse io_free_region for failure path
io_uring/memmap: optimise single folio regions
io_uring/memmap: helper for pinning region pages
io_uring/memmap: add IO_REGION_F_SINGLE_REF
io_uring/memmap: implement kernel allocated regions
io_uring/memmap: implement mmap for regions
io_uring: pass ctx to io_register_free_rings
io_uring: use region api for SQ
io_uring: use region api for CQ
io_uring/kbuf: use mmap_lock to sync with mmap
io_uring/kbuf: remove pbuf ring refcounting
io_uring/kbuf: use region api for pbuf rings
io_uring/memmap: unify io_uring mmap'ing code
include/linux/io_uring_types.h | 23 +-
io_uring/io_uring.c | 72 +++----
io_uring/kbuf.c | 226 ++++++--------------
io_uring/kbuf.h | 20 +-
io_uring/memmap.c | 369 ++++++++++++++++-----------------
io_uring/memmap.h | 23 +-
io_uring/register.c | 91 ++++----
io_uring/rsrc.c | 22 +-
io_uring/rsrc.h | 4 +
9 files changed, 359 insertions(+), 491 deletions(-)
--
2.46.0