[PATCHSET v4 0/16] Add support for ring mapped provided buffers

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

 



Hi,

This series builds to adding support for a different way of doing
provided buffers. The interesting bits here are patch 16, which also has
some performance numbers an an explanation of it.

Patches 1..6 are cleanups that should just applied separately, I
think the clean up the existing code quite nicely.

Patch 7 switches provided buffers from the hashed list approach to
using an array (for up to 64 groups), and using an xarray for a
larger sparse space.

Patches 8..13 are just cleanups and generic optimizations.

Patch 14 adds NOP support for provided buffers, just so that we can
benchmark the last change.

Patch 15 just abstracts out the pinning code.

Patch 16 finally adds the feature.

This passes the full liburing suite, and various test cases I adopted
to use ring provided buffers.

v4:	- Shrink io_kiocb compared to before this series (-8 bytes)
	- Save some space in io_buffer_list
	- Add patch moving provided buffers to array + xarray
	- Add comments
	- Unify cflags handling for classic/ring buffers
	- Fix bid/bgid types

Can also be found in my git repo, for-5.19/io_uring-pbuf branch:

https://git.kernel.dk/cgit/linux-block/log/?h=for-5.19/io_uring-pbuf

 fs/io_uring.c                 | 599 ++++++++++++++++++++++++----------
 include/uapi/linux/io_uring.h |  28 ++
 2 files changed, 462 insertions(+), 165 deletions(-)

-- 
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