Re: [RFC PATCH v5 0/4] add simple copy support
From: Ming Lei <hidden>
Date: 2021-02-22 01:34:16
Also in:
dm-devel, linux-fsdevel, linux-nvme, linux-scsi, lkml
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.
*blkdev_issue_copy* takes source bdev, no of sources, array of source
ranges (in sectors), destination bdev and destination offset(in sectors).
If both source and destination block devices are same and copy_offload = 1,
then copy is done through native copy offloading. Copy emulation is used
in other cases.
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.The patchset adds ioctl(BLKCOPY) and two userspace visible data struture(range_entry, and copy_range), all belong to kabi stuff, and the interface is generic block layer kabi. The API has to be allowed to extend for supporting SCSI XCOPY in future or similar block copy commands without breaking previous application, so please CC linux-scsi and scsi guys in your next post. -- Ming