Re: [PATCH 3/7] block: copy offload support infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/17/21 2:53 PM, Douglas Gilbert wrote:
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?

Hi Mikulas and Doug,

Yes, I'm interested in continuing Mikulas' work on copy offloading. I will take a look at Doug's approach too for sharing buffers between read-side and write-side bios. It may take a few months however before I can find the time to work on this.

Thanks,

Bart.



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux