NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel

Written by Michael Larabel in Linux Storage on 7 December 2020 at 03:56 PM EST. 9 Comments
One of the NVMe specification additions that was ratified this year is the "simple copy" command that allows for copying multiple contiguous ranges to a single destination. That simple copy operation is offloaded to the SSD controller. The Linux kernel support for NVMe simple copy is now being prepared.

Simple copy allows offloading the copy operations from multiple source LBAs to a single destination LBA. This copy offloading operation is akin to SCSI Extended Copy "XCOPY" but much simpler. Data movement is handled solely by the SSD controller and this extension was designed with the NVMe Zoned Namespaces (ZNS) support in mind.

Sent out on Friday were the patches implementing the simple copy support within the kernel's NVMe code and block layer.

So far some concerns were raised by kernel developers over the need for a sane fallback in the block layer should simple copy not be supported by the device that it would in turn issue provide a safe copy fallback. Use-cases have also been discussed for simple copy like in garbage collection for the F2FS and Btrfs file-systems as well as in use by the dm-kcopyd code. Given prior attempts to mainline SCSI XCOPY support didn't pan out, there are increased concerns over ensuring the NVMe simple copy code is in good shape before merging.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week