On 2021-08-17 4:41 p.m., Mikulas Patocka wrote:
On Tue, 17 Aug 2021, Bart Van Assche wrote:
On 8/17/21 3:14 AM, SelvaKumar S wrote:
Introduce REQ_OP_COPY, a no-merge copy offload operation. Create
bio with control information as payload and submit to the device.
Larger copy operation may be divided if necessary by looking at device
limits. REQ_OP_COPY(19) is a write op and takes zone_write_lock when
submitted to zoned device.
Native copy offload is not supported for stacked devices.
Using a single operation for copy-offloading instead of separate operations
for reading and writing is fundamentally incompatible with the device mapper.
I think we need a copy-offloading implementation that is compatible with the
device mapper.
I once wrote a copy offload implementation that is compatible with device
mapper. The copy operation creates two bios (one for reading and one for
writing), passes them independently through device mapper and pairs them
at the physical device driver.
It's here: http://people.redhat.com/~mpatocka/patches/kernel/xcopy/current
In my copy solution the read-side and write-side bio pairs share the same
storage (i.e. ram) This gets around the need to copy data between the bio_s.
See:
https://sg.danny.cz/sg/sg_v40.html
in Section 8 on Request sharing. This technique can be efficiently extend to
source --> destination1,destination2,... copies.
Doug Gilbert
I verified that it works with iSCSI. Would you be interested in continuing
this work?
Mikulas
Storing the parameters of the copy operation in the bio payload is
incompatible with the current implementation of bio_split().
In other words, I think there are fundamental problems with this patch series.
Bart.
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/dm-devel