On 4/9/21 17:22, Max Gurtovoy wrote: > On 2/19/2021 2:45 PM, 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. > Any idea why this TP wasn't designed for copy offload between 2 > different namespaces in the same controller ? Yes, it was the first attempt so to keep it simple. Further work is needed to add incremental TP so that we can also do a copy between the name-spaces of same controller (if we can't already) and to the namespaces that belongs to the different controller. > And a simple copy will be the case where the src_nsid == dst_nsid ? > > Also why there are multiple source ranges and only one dst range ? We > could add a bit to indicate if this range is src or dst.. > >