| From: |
| Gabriel Krisman Bertazi <krisman-AT-suse.de> |
| To: |
| axboe-AT-kernel.dk |
| Subject: |
| [PATCH 0/2] Introduce IORING_OP_MMAP |
| Date: |
| Thu, 29 Jan 2026 17:11:36 -0500 |
| Message-ID: |
| <20260129221138.897715-1-krisman@suse.de> |
| Cc: |
| io-uring-AT-vger.kernel.org, Gabriel Krisman Bertazi <krisman-AT-suse.de>, Andrew Morton <akpm-AT-linux-foundation.org>, David Hildenbrand <david-AT-kernel.org>, Lorenzo Stoakes <lorenzo.stoakes-AT-oracle.com>, Vlastimil Babka <vbabka-AT-suse.cz>, "Liam R. Howlett" <Liam.Howlett-AT-oracle.com>, Mike Rapoport <rppt-AT-kernel.org>, Suren Baghdasaryan <surenb-AT-google.com>, Michal Hocko <mhocko-AT-suse.com>, linux-mm-AT-kvack.org |
| Archive-link: |
| Article |
Hi,
There's been a few requests over time for supporting mmap(2) over
io_uring. The reasoning are twofold: 1) serving as base for batching
multiple mappings in a single operation 2) supporting mmap of fixed
files.
Since mmap can operate on either anonymous memory and file descriptors,
patch 1 adds support for optional fds in io_uring commands. Patch 2
implements the mmap operation itself.
Note this patchset doesn't do any kind of smarter batching in MM. While
we can potentially do some interesting optimizations already, like
holding the MM write lock instead of reacquiring it for each mapping, I
wanted to focus on the API discussion first. This is left as future
work.
liburing support, including testcases, will be sent shortly to the list,
but can also be found at:
https://github.com/krisman/liburing -b mmap
Thanks,
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: linux-mm@kvack.org
Cc: io-uring@vger.kernel.org
Gabriel Krisman Bertazi (2):
io_uring: Support commands with optional file descriptors
io_uring: introduce IORING_OP_MMAP
include/uapi/linux/io_uring.h | 10 +++
io_uring/Makefile | 2 +-
io_uring/io_uring.c | 15 ++--
io_uring/mmap.c | 147 ++++++++++++++++++++++++++++++++++
io_uring/mmap.h | 4 +
io_uring/opdef.c | 9 +++
io_uring/opdef.h | 2 +
7 files changed, 183 insertions(+), 6 deletions(-)
create mode 100644 io_uring/mmap.c
create mode 100644 io_uring/mmap.h
--
2.52.0