[PATCHSET v3 0/4] Provide more efficient buffer registration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux