public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCHSET v3 0/4] Provide more efficient buffer registration
@ 2024-09-12 16:38 Jens Axboe
  2024-09-12 16:38 ` [PATCH 1/4] io_uring/rsrc: clear 'slot' entry upfront Jens Axboe
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Jens Axboe @ 2024-09-12 16:38 UTC (permalink / raw)
  To: io-uring

Hi,

Pretty much what the subject line says, it's about 25k to 40k times
faster to provide a way to duplicate an existing rings buffer
registration than it is manually map/pin/register the buffers again
with a new ring.

Patch 1 is just a prep patch, patch 2 adds refs to struct
io_mapped_ubuf, patch 3 abstracts out a helper, and patch 4 finally adds
the register opcode to allow a ring to duplicate the registered mappings
from one ring to another.

This came about from discussing overhead from the varnish cache
project for cases with more dynamic ring/thread creation.

Also see the buf-copy liburing branch for support and test code:

https://git.kernel.dk/cgit/liburing/log/?h=buf-copy

 include/uapi/linux/io_uring.h | 13 +++++
 io_uring/register.c           | 60 ++++++++++++++--------
 io_uring/register.h           |  1 +
 io_uring/rsrc.c               | 96 ++++++++++++++++++++++++++++++++++-
 io_uring/rsrc.h               |  2 +
 5 files changed, 150 insertions(+), 22 deletions(-)

Since v2:
- Ensure that it works for registered rings (both src/dst)
- Little cleanups

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-09-17 16:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-12 16:38 [PATCHSET v3 0/4] Provide more efficient buffer registration Jens Axboe
2024-09-12 16:38 ` [PATCH 1/4] io_uring/rsrc: clear 'slot' entry upfront Jens Axboe
2024-09-12 16:38 ` [PATCH 2/4] io_uring/rsrc: add reference count to struct io_mapped_ubuf Jens Axboe
2024-09-12 16:38 ` [PATCH 3/4] io_uring/register: provide helper to get io_ring_ctx from 'fd' Jens Axboe
2024-09-12 16:38 ` [PATCH 4/4] io_uring: add IORING_REGISTER_COPY_BUFFERS method Jens Axboe
2024-09-17 16:41   ` Gabriel Krisman Bertazi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox