Re: [RFC PATCH v5 0/4] add simple copy support
From: Dave Chinner <david@fromorbit.com>
Date: 2021-02-21 23:53:44
Also in:
dm-devel, linux-block, linux-fsdevel, linux-nvme
From: Dave Chinner <david@fromorbit.com>
Date: 2021-02-21 23:53:44
Also in:
dm-devel, linux-block, linux-fsdevel, linux-nvme
On Fri, Feb 19, 2021 at 06:15:13PM +0530, SelvaKumar S wrote:
This patchset tries to add support for TP4065a ("Simple Copy Command"),
v2020.05.04 ("Ratified")
The Specification can be found in following link.
https://nvmexpress.org/wp-content/uploads/NVM-Express-1.4-Ratified-TPs-1.zip
Simple copy command is a copy offloading operation and is used to copy
multiple contiguous ranges (source_ranges) of LBA's to a single destination
LBA within the device reducing traffic between host and device.
This implementation doesn't add native copy offload support for stacked
devices rather copy offload is done through emulation. Possible use
cases are F2FS gc and BTRFS relocation/balance.It sounds like you are missing the most obvious use case for this: hooking up filesystem copy_file_range() implementations to allow userspace to offload user data copies to hardware.... Another fs level feature that could use this for hardware acceleration fallocate(FALLOC_FL_UNSHARE). These are probably going to be far easier to hook up than filesystem GC algorithms, and there is also solid data integrity and stress testing checking infrastructure for these operations via fstests.
As SCSI XCOPY can take two different block devices and no of source range is equal to 1, this interface can be extended in future to support SCSI XCOPY.
That greatly complicates the implementation. do we even care at this point about cross-device XCOPY at this point? Cheers, Dave. -- Dave Chinner david@fromorbit.com