NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel
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.
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.
10 Comments