Re: [PATCH v4 0/5] btrfs: io_uring interface for encoded reads

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

 



On 22/10/24 22:50, Mark Harmstone wrote:
This is version 4 of a patch series to add an io_uring interface for
encoded reads. The principal use case for this is to eventually allow

btrfs send and receive to operate asynchronously,

How would you define an asynchronously operated Btrfs send and receive?
Are you referring to Btrfs send and receive the leveraging io_uring
asynchronous operation?

the lack of io_uring
encoded I/O being one of the main blockers for this.


I've written a test program for this, which demonstrates the ioctl and
io_uring interface produce identical results: https://github.com/maharmstone/io_uring-encoded

Thanks, Anand



Changelog:
v4:
* Rewritten to avoid taking function pointer
* Removed nowait parameter, as this could be derived from iocb flags
* Fixed structure not getting properly initialized
* Followed ioctl by capping uncompressed reads at EOF
* Rebased against btrfs/for-next
* Formatting fixes
* Rearranged structs to minimize holes
* Published test program
* Fixed potential data race with userspace
* Changed to use io_uring_cmd_to_pdu helper function
* Added comments for potentially confusing parts of the code

v3:
* Redo of previous versions

Mark Harmstone (5):
   btrfs: remove pointless addition in btrfs_encoded_read
   btrfs: change btrfs_encoded_read so that reading of extent is done by
     caller
   btrfs: don't sleep in btrfs_encoded_read if IOCB_NOWAIT set
   btrfs: move priv off stack in btrfs_encoded_read_regular_fill_pages
   btrfs: add io_uring command for encoded reads

  fs/btrfs/btrfs_inode.h |  13 +-
  fs/btrfs/file.c        |   1 +
  fs/btrfs/inode.c       | 175 ++++++++++++++-------
  fs/btrfs/ioctl.c       | 342 ++++++++++++++++++++++++++++++++++++++++-
  fs/btrfs/ioctl.h       |   2 +
  fs/btrfs/send.c        |   3 +-
  6 files changed, 473 insertions(+), 63 deletions(-)






[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