[PATCH 00/12] Block storage copy offloading
Shin'ichiro Kawasaki
shinichiro.kawasaki at wdc.com
Fri May 22 05:00:04 PDT 2026
On Apr 24, 2026 / 15:41, Bart Van Assche wrote:
> Hi Jens,
>
> This patch series implements a new approach for copy offloading. Compared to
> Nitesh' approach, the differences are as follows:
> - Two new limits have been introduced representing the maximum number of source
> and destination ranges. Support for multiple source ranges for the NVMe Copy
> command has been added.
> - The blkdev_copy_offload() function can now submit multiple copy offload
> commands instead of only one.
> - The implementation no longer depends on block layer plugging.
>
> This patch series includes copy offloading support for the Linux kernel block
> layer core, the device mapper core, the null_blk and the NVMe and nvmet drivers.
> Support for the scsi_debug and SCSI core will follow later.
>
> Test scripts are available here:
> https://github.com/bvanassche/blktests/tree/copy-offloading
>
> See also Bart Van Assche, [LSF/MM/BPF TOPIC] Block storage copy offloading,
> January 2026
> (https://lore.kernel.org/all/0cfe6fe2-3865-4dc2-92a7-74b1240f7b63@acm.org/).
>
> See also Nitesh Shetty, Implement copy offload support, May 2024
> (https://lore.kernel.org/linux-block/20240520102033.9361-1-nj.shetty@samsung.com/).
FYI, blktests CI trial run detected that this patch series triggers nvme/018
failure. I manually applied this series on top of the v7.1-rc4 kernel and
observed the failure is recreated in stable manner.
nvme/018 (tr=loop) (unit test NVMe-oF out of range access on a file backend) [failed]
runtime 1.208s ... 1.189s
--- tests/nvme/018.out 2025-04-22 13:13:27.738873155 +0900
+++ /home/shin/Blktests/blktests/results/nodev_tr_loop/nvme/018.out.bad 2026-05-22 20:57:31.060000000 +0900
@@ -1,3 +1,4 @@
Running nvme/018
+ERROR: nvme read for out of range LBA was not rejected
disconnected 1 controller(s)
Test complete
More information about the Linux-nvme
mailing list