Re: [PATCH v15 04/12] block: add emulation for copy

From: Hannes Reinecke
Date: Fri Sep 08 2023 - 02:06:50 EST


On 9/6/23 18:38, Nitesh Shetty wrote:
For the devices which does not support copy, copy emulation is added.
It is required for in-kernel users like fabrics, where file descriptor is
not available and hence they can't use copy_file_range.
Copy-emulation is implemented by reading from source into memory and
writing to the corresponding destination.
Also emulation can be used, if copy offload fails or partially completes.
At present in kernel user of emulation is NVMe fabrics.

Leave out the last sentence; I really would like to see it enabled for SCSI, too (we do have copy offload commands for SCSI ...).

And it raises all the questions which have bogged us down right from the start: where is the point in calling copy offload if copy offload is not implemented or slower than copying it by hand?
And how can the caller differentiate whether copy offload bring a benefit to him?

IOW: wouldn't it be better to return -EOPNOTSUPP if copy offload is not available?

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman