linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: Nitesh Shetty <nj.shetty@samsung.com>
Cc: Jens Axboe <axboe@kernel.dk>, Jonathan Corbet <corbet@lwn.net>,
	Alasdair Kergon <agk@redhat.com>,
	Mike Snitzer <snitzer@kernel.org>,
	dm-devel@redhat.com, Keith Busch <kbusch@kernel.org>,
	Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>,
	Chaitanya Kulkarni <kch@nvidia.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	martin.petersen@oracle.com, mcgrof@kernel.org,
	gost.dev@samsung.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-nvme@lists.infradead.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v15 09/12] dm: Add support for copy offload
Date: Mon, 11 Sep 2023 09:45:19 +0200	[thread overview]
Message-ID: <19be4f1f-dc2a-47e7-a7d0-94f3a18778d3@suse.de> (raw)
In-Reply-To: <20230911070724.GA28177@green245>

On 9/11/23 09:07, Nitesh Shetty wrote:
> On Fri, Sep 08, 2023 at 08:13:37AM +0200, Hannes Reinecke wrote:
>> On 9/6/23 18:38, Nitesh Shetty wrote:
>>> Before enabling copy for dm target, check if underlying devices and
>>> dm target support copy. Avoid split happening inside dm target.
>>> Fail early if the request needs split, currently splitting copy
>>> request is not supported.
>>>
>> And here is where I would have expected the emulation to take place;
>> didn't you have it in one of the earlier iterations?
> 
> No, but it was the other way round.
> In dm-kcopyd we used device offload, if that was possible, before using default
> dm-mapper copy. It was dropped in the current series,
> to streamline the patches and make the series easier to review.
> 
>> After all, device-mapper already has the infrastructure for copying
>> data between devices, so adding a copy-offload emulation for device-mapper
>> should be trivial.
> I did not understand this, can you please elaborate ?
> 
Please see my comments to patch 04.
We should only implement copy-offload if there is a dedicated 
infrastructure in place. But we should not have a 'generic' copy-offload 
emulation.
Problem is that 'real' copy-offload functionalities (ie for NVMe or 
SCSI) are riddled with corner-cases where copy-offload does _not_ work,
and where commands might fail if particular conditions are not met.
Falling back to a generic implementation will cause applications to 
assume that copy-offload worked, and that it gained performance as
the application just had to issue a single command.
Whereas in fact the opposite is true; it wasn't a single command, and 
the application might have performed better by issuing the commands
itself.
Returning -EOPNOTSUPP in these cases will inform the application that 
the attempt didn't work, and that it will have to fall back to the
'normal' copy.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +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


  reply	other threads:[~2023-09-11  7:47 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20230906164238epcas5p4a511a029fb8ae8bbc36b750712ad64d5@epcas5p4.samsung.com>
2023-09-06 16:38 ` [PATCH v15 00/12] Implement copy offload support Nitesh Shetty
     [not found]   ` <CGME20230906164253epcas5p32862e8384bdd566881d2c155757cb056@epcas5p3.samsung.com>
2023-09-06 16:38     ` [PATCH v15 01/12] block: Introduce queue limits and sysfs for copy-offload support Nitesh Shetty
2023-09-07 18:38       ` Luis Chamberlain
     [not found]   ` <CGME20230906164303epcas5p1c2d3ec21feac347f0f1d68adc97c61f5@epcas5p1.samsung.com>
2023-09-06 16:38     ` [PATCH v15 02/12] Add infrastructure for copy offload in block and request layer Nitesh Shetty
2023-09-07  5:39       ` Hannes Reinecke
2023-09-07  7:09         ` Nitesh Shetty
     [not found]   ` <CGME20230906164312epcas5p397662c68dde1dbc4dc14c3e80ca260b3@epcas5p3.samsung.com>
2023-09-06 16:38     ` [PATCH v15 03/12] block: add copy offload support Nitesh Shetty
2023-09-07  5:49       ` Hannes Reinecke
2023-09-07  7:16         ` Nitesh Shetty
2023-09-08  5:55           ` Hannes Reinecke
     [not found]   ` <CGME20230906164321epcas5p4dad5b1c64fcf85e2c4f9fc7ddb855ea7@epcas5p4.samsung.com>
2023-09-06 16:38     ` [PATCH v15 04/12] block: add emulation for copy Nitesh Shetty
2023-09-08  6:06       ` Hannes Reinecke
2023-09-11  7:09         ` Nitesh Shetty
2023-09-11  7:39           ` Hannes Reinecke
2023-09-11 10:20             ` Nitesh Shetty
     [not found]   ` <CGME20230906164330epcas5p105dbc5a7edd4b47c3dce6fe94301015e@epcas5p1.samsung.com>
2023-09-06 16:38     ` [PATCH v15 05/12] fs/read_write: Enable copy_file_range for block device Nitesh Shetty
2023-09-08  6:07       ` Hannes Reinecke
     [not found]   ` <CGME20230906164340epcas5p11ebd2dd93bd1c8bdb0c4452bfe059dd3@epcas5p1.samsung.com>
2023-09-06 16:38     ` [PATCH v15 06/12] fs, block: copy_file_range for def_blk_ops for direct " Nitesh Shetty
2023-09-08  6:08       ` Hannes Reinecke
     [not found]   ` <CGME20230906164350epcas5p3f9b8bca1a2cb4d452e5c893cd3222418@epcas5p3.samsung.com>
2023-09-06 16:38     ` [PATCH v15 07/12] nvme: add copy offload support Nitesh Shetty
2023-09-08  6:09       ` Hannes Reinecke
     [not found]   ` <CGME20230906164359epcas5p326df3257e93d1f5454b8c6b6c642e61c@epcas5p3.samsung.com>
2023-09-06 16:38     ` [PATCH v15 08/12] nvmet: add copy command support for bdev and file ns Nitesh Shetty
2023-09-08  6:11       ` Hannes Reinecke
     [not found]   ` <CGME20230906164407epcas5p3f9e9f33e15d7648fd1381cdfb97d11f2@epcas5p3.samsung.com>
2023-09-06 16:38     ` [PATCH v15 09/12] dm: Add support for copy offload Nitesh Shetty
2023-09-08  6:13       ` Hannes Reinecke
2023-09-11  7:07         ` Nitesh Shetty
2023-09-11  7:45           ` Hannes Reinecke [this message]
     [not found]   ` <CGME20230906164416epcas5p307df0f4ab0a6a6a670fb50f6a8420a2a@epcas5p3.samsung.com>
2023-09-06 16:38     ` [PATCH v15 10/12] dm: Enable copy offload for dm-linear target Nitesh Shetty
2023-09-08  6:14       ` Hannes Reinecke
     [not found]   ` <CGME20230906164425epcas5p4275f672db2cfe129f666d8c929cbd095@epcas5p4.samsung.com>
2023-09-06 16:38     ` [PATCH v15 11/12] null: Enable trace capability for null block Nitesh Shetty
2023-09-08  6:14       ` Hannes Reinecke
     [not found]   ` <CGME20230906164434epcas5p16135fb4935a62519360ede42e137bbbb@epcas5p1.samsung.com>
2023-09-06 16:38     ` [PATCH v15 12/12] null_blk: add support for copy offload Nitesh Shetty
2023-09-06 22:01       ` kernel test robot
2023-09-06 22:58       ` kernel test robot
2023-09-08  6:16       ` Hannes Reinecke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19be4f1f-dc2a-47e7-a7d0-94f3a18778d3@suse.de \
    --to=hare@suse.de \
    --cc=agk@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=brauner@kernel.org \
    --cc=corbet@lwn.net \
    --cc=dm-devel@redhat.com \
    --cc=gost.dev@samsung.com \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=kch@nvidia.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=martin.petersen@oracle.com \
    --cc=mcgrof@kernel.org \
    --cc=nj.shetty@samsung.com \
    --cc=sagi@grimberg.me \
    --cc=snitzer@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).