linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bart Van Assche <bvanassche@acm.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Nitesh Shetty <nj.shetty@samsung.com>,
	Damien Le Moal <dlemoal@kernel.org>, Jens Axboe <axboe@kernel.dk>,
	Jonathan Corbet <corbet@lwn.net>,
	Alasdair Kergon <agk@redhat.com>,
	Mike Snitzer <snitzer@kernel.org>,
	Mikulas Patocka <mpatocka@redhat.com>,
	Keith Busch <kbusch@kernel.org>, Sagi Grimberg <sagi@grimberg.me>,
	Chaitanya Kulkarni <kch@nvidia.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
	martin.petersen@oracle.com, david@fromorbit.com, hare@suse.de,
	damien.lemoal@opensource.wdc.com, anuj20.g@samsung.com,
	joshi.k@samsung.com, nitheshshetty@gmail.com,
	gost.dev@samsung.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	dm-devel@lists.linux.dev, linux-nvme@lists.infradead.org,
	linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v20 02/12] Add infrastructure for copy offload in block and request layer.
Date: Mon, 3 Jun 2024 10:12:48 -0700	[thread overview]
Message-ID: <d7ae00c8-c038-4bed-937e-222251bc627a@acm.org> (raw)
In-Reply-To: <20240601055931.GB5772@lst.de>

On 5/31/24 22:59, Christoph Hellwig wrote:
> On Thu, May 30, 2024 at 10:11:15AM -0700, Bart Van Assche wrote:
>> This new approach has the following two disadvantages:
>> * Without plug, REQ_OP_COPY_SRC and REQ_OP_COPY_DST are not combined. These two
>>    operation types are the only operation types for which not using a plug causes
>>    an I/O failure.
> 
> So?  We can clearly document that and even fail submission with a helpful
> message trivially to enforce that.

Consider the following use case:
* Task A calls blk_start_plug()
* Task B calls blk_start_plug()
* Task A submits a REQ_OP_COPY_DST bio and a REQ_OP_COPY_SRC bio.
* Task B submits a REQ_OP_COPY_DST bio and a REQ_OP_COPY_SRC bio.
* The stacking driver to which all REQ_OP_COPY_* operations have been
   submitted processes bios asynchronusly.
* Task A calls blk_finish_plug()
* Task B calls blk_finish_plug()
* The REQ_OP_COPY_DST bio from task A and the REQ_OP_COPY_SRC bio from
   task B are combined into a single request.
* The REQ_OP_COPY_DST bio from task B and the REQ_OP_COPY_SRC bio from
   task A are combined into a single request.

This results in silent and hard-to-debug data corruption. Do you agree
that we should not restrict copy offloading to stacking drivers that
process bios synchronously and also that this kind of data corruption
should be prevented?

Thanks,

Bart.

  reply	other threads:[~2024-06-03 17:13 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20240520102747epcas5p33497a911ca70c991e5da8e22c5d1336b@epcas5p3.samsung.com>
2024-05-20 10:20 ` [PATCH v20 00/12] Implement copy offload support Nitesh Shetty
     [not found]   ` <CGME20240520102830epcas5p27274901f3d0c2738c515709890b1dec4@epcas5p2.samsung.com>
2024-05-20 10:20     ` [PATCH v20 01/12] block: Introduce queue limits and sysfs for copy-offload support Nitesh Shetty
2024-05-20 14:33       ` Damien Le Moal
2024-05-21  8:15         ` Nitesh Shetty
2024-05-20 22:42       ` Bart Van Assche
2024-05-21 14:25         ` Nitesh Shetty
2024-05-22 17:49           ` Bart Van Assche
2024-05-23  7:05             ` Nitesh Shetty
2024-05-21  6:57       ` Hannes Reinecke
2024-06-01  5:53       ` Christoph Hellwig
2024-06-03  6:43         ` Nitesh Shetty
     [not found]   ` <CGME20240520102842epcas5p4949334c2587a15b8adab2c913daa622f@epcas5p4.samsung.com>
2024-05-20 10:20     ` [PATCH v20 02/12] Add infrastructure for copy offload in block and request layer Nitesh Shetty
2024-05-20 15:00       ` Damien Le Moal
2024-05-21 10:50         ` Nitesh Shetty
2024-05-20 23:00       ` Bart Van Assche
2024-05-21 11:17         ` Nitesh Shetty
2024-05-22 17:58           ` Bart Van Assche
2024-05-21  7:01       ` Hannes Reinecke
2024-05-24  6:54         ` Nitesh Shetty
     [not found]         ` <66503bc7.630a0220.56c85.8b9dSMTPIN_ADDED_BROKEN@mx.google.com>
2024-05-24 13:52           ` Bart Van Assche
2024-05-27  8:27             ` Nitesh Shetty
2024-05-28 14:07         ` Bart Van Assche
2024-05-22 18:05       ` Bart Van Assche
2024-05-23 11:34         ` Nitesh Shetty
2024-05-24 20:33       ` Bart Van Assche
2024-05-29  6:17         ` Nitesh Shetty
2024-05-29  7:48           ` Damien Le Moal
2024-05-29 22:41             ` Bart Van Assche
2024-05-30  7:16               ` Nitesh Shetty
     [not found]               ` <665850bd.050a0220.a5e6b.5b72SMTPIN_ADDED_BROKEN@mx.google.com>
2024-05-30 17:11                 ` Bart Van Assche
2024-05-31 10:17                   ` Nitesh Shetty
     [not found]                   ` <6659b691.630a0220.90195.d0ebSMTPIN_ADDED_BROKEN@mx.google.com>
2024-05-31 23:45                     ` Bart Van Assche
2024-06-01  5:59                   ` Christoph Hellwig
2024-06-03 17:12                     ` Bart Van Assche [this message]
2024-06-04  4:40                       ` Christoph Hellwig
2024-06-04 11:44                         ` Bart Van Assche
2024-06-05  8:20                           ` Christoph Hellwig
     [not found]                             ` <CGME20240624105121epcas5p3a5a8c73bd5ef19c02e922e5829a4dff0@epcas5p3.samsung.com>
2024-06-24 10:44                               ` Nitesh Shetty
     [not found]                               ` <6679526f.170a0220.9ffd.aefaSMTPIN_ADDED_BROKEN@mx.google.com>
2024-06-24 16:25                                 ` Bart Van Assche
2024-06-24 21:55                                   ` Damien Le Moal
2024-06-25 18:18                                     ` Bart Van Assche
2024-06-25 21:18                                       ` Damien Le Moal
2024-06-26  5:22                                         ` Christoph Hellwig
2024-06-28 13:53                                           ` Bart Van Assche
     [not found]                               ` <66795280.630a0220.f3ccd.b80cSMTPIN_ADDED_BROKEN@mx.google.com>
2024-06-24 22:58                                 ` Keith Busch
     [not found]                           ` <CGME20240606072827epcas5p285de8d4f3b0f6d3a87f8341414336b42@epcas5p2.samsung.com>
2024-06-06  7:28                             ` Nitesh Shetty
     [not found]                             ` <66618886.630a0220.4d4fc.1c9cSMTPIN_ADDED_BROKEN@mx.google.com>
2024-06-06 16:44                               ` Bart Van Assche
2024-06-01  5:57             ` Christoph Hellwig
     [not found]   ` <CGME20240520102853epcas5p42d635d6712b8876ea22a45d730cb1378@epcas5p4.samsung.com>
2024-05-20 10:20     ` [PATCH v20 03/12] block: add copy offload support Nitesh Shetty
2024-06-01  6:16       ` Christoph Hellwig
2024-06-04 10:50         ` Nitesh Shetty
     [not found]   ` <CGME20240520102906epcas5p15b5a0b3c8edd0bf3073030a792a328bb@epcas5p1.samsung.com>
2024-05-20 10:20     ` [PATCH v20 04/12] block: add emulation for copy Nitesh Shetty
2024-05-21  7:06       ` Hannes Reinecke
2024-05-21 11:29         ` Nitesh Shetty
2024-06-01  6:18       ` Christoph Hellwig
     [not found]   ` <CGME20240520102917epcas5p1bda532309b9174bf2702081f6f58daf7@epcas5p1.samsung.com>
2024-05-20 10:20     ` [PATCH v20 05/12] fs/read_write: Enable copy_file_range for block device Nitesh Shetty
2024-05-21  7:07       ` Hannes Reinecke
2024-05-25 23:02       ` Dave Chinner
2024-05-28  5:57         ` Nitesh Shetty
     [not found]   ` <CGME20240520102929epcas5p2f4456f6fa0005d90769615eb2c2bf273@epcas5p2.samsung.com>
2024-05-20 10:20     ` [PATCH v20 06/12] fs, block: copy_file_range for def_blk_ops for direct " Nitesh Shetty
2024-05-25 23:09       ` Dave Chinner
2024-05-27  8:43         ` Nitesh Shetty
     [not found]   ` <CGME20240520102940epcas5p2b5f38ceabe94bed3905fb386a0d65ec7@epcas5p2.samsung.com>
2024-05-20 10:20     ` [PATCH v20 07/12] nvme: add copy offload support Nitesh Shetty
2024-06-01  6:22       ` Christoph Hellwig
2024-06-03 11:43         ` Nitesh Shetty
     [not found]   ` <CGME20240520102952epcas5p18716d203d1810c38397e7fcc9a26922a@epcas5p1.samsung.com>
2024-05-20 10:20     ` [PATCH v20 08/12] nvmet: add copy command support for bdev and file ns Nitesh Shetty
     [not found]   ` <CGME20240520103004epcas5p4a18f3f6ba0f218d57b0ab4bb84c6ff18@epcas5p4.samsung.com>
2024-05-20 10:20     ` [PATCH v20 09/12] dm: Add support for copy offload Nitesh Shetty
2024-05-21  7:11       ` Hannes Reinecke
2024-05-21 14:08         ` Nitesh Shetty
2024-05-22  6:22           ` Hannes Reinecke
2024-05-22  7:10             ` Nitesh Shetty
     [not found]   ` <CGME20240520103016epcas5p31b9a0f3637959626d49763609ebda6ef@epcas5p3.samsung.com>
2024-05-20 10:20     ` [PATCH v20 10/12] dm: Enable copy offload for dm-linear target Nitesh Shetty
2024-05-20 23:25       ` Bart Van Assche
2024-05-21 14:48         ` Nitesh Shetty
     [not found]   ` <CGME20240520103027epcas5p4789defe8ab3bff23bd2abcf019689fa2@epcas5p4.samsung.com>
2024-05-20 10:20     ` [PATCH v20 11/12] null: Enable trace capability for null block Nitesh Shetty
2024-05-20 23:27       ` Bart Van Assche
2024-06-01  6:23       ` Christoph Hellwig
2024-06-03 11:04         ` Nitesh Shetty
     [not found]   ` <CGME20240520103039epcas5p4373f7234162a32222ac225b976ae30ce@epcas5p4.samsung.com>
2024-05-20 10:20     ` [PATCH v20 12/12] null_blk: add support for copy offload Nitesh Shetty
2024-05-20 23:42       ` Bart Van Assche
2024-05-21 14:46         ` Nitesh Shetty
2024-05-22 17:52           ` Bart Van Assche
2024-05-23  6:55             ` Nitesh Shetty
2024-05-20 22:54   ` [PATCH v20 00/12] Implement copy offload support Bart Van Assche
2024-06-01  5:47   ` Christoph Hellwig
2024-06-03 10:53     ` Nitesh Shetty

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=d7ae00c8-c038-4bed-937e-222251bc627a@acm.org \
    --to=bvanassche@acm.org \
    --cc=agk@redhat.com \
    --cc=anuj20.g@samsung.com \
    --cc=axboe@kernel.dk \
    --cc=brauner@kernel.org \
    --cc=corbet@lwn.net \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=david@fromorbit.com \
    --cc=dlemoal@kernel.org \
    --cc=dm-devel@lists.linux.dev \
    --cc=gost.dev@samsung.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=jack@suse.cz \
    --cc=joshi.k@samsung.com \
    --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=mpatocka@redhat.com \
    --cc=nitheshshetty@gmail.com \
    --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).