linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Martin K. Petersen" <martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: Mike Snitzer <snitzer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org,
	linux-raid-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Martin K. Petersen"
	<martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	philipp.reisner-63ez5xqkn6DQT0dZR+AlfA@public.gmane.org,
	linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	shli-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>,
	agk-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	drbd-dev-cunTk1MwBs8qoQakbn7OcQ@public.gmane.org
Subject: Re: [PATCH 22/23] drbd: implement REQ_OP_WRITE_ZEROES
Date: Thu, 30 Mar 2017 22:34:05 -0400	[thread overview]
Message-ID: <yq137duyy1u.fsf@oracle.com> (raw)
In-Reply-To: <20170330231550.GA3102-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> (Mike Snitzer's message of "Thu, 30 Mar 2017 19:15:50 -0400")

Mike Snitzer <snitzer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> writes:

Mike,

> But while discussing this effort with Jeff Moyer he asked: shouldn't the
> zeroed blocks be provisioned?  This is a fairly embarassing question not
> to be able to answer in the moment.  So I clearly need to learn what the
> overall intent of WRITE_ZEROES actually is.

The intent is to guarantee all future reads to these blocks will return
zeroes. Whether to allocate or deallocate or do a combination to achieve
that goal is up to the device.

> If it is meant as a replacement for WRITE_SAME (as hch switched dm-io
> over from WRITE_SAME with a payload of 0 to WRITE_ZEROES) and for the
> backing mechanism for blkdev_issue_zeroout() then I guess I have my
> answer.

Yes. I was hoping MD would use WRITE SAME to initialize data and parity
drives. That's why I went with SAME nomenclature rather than ZEROES
(which had just appeared in NVMe at that time).

Christoph's renaming is mostly to emphasize the purpose and the
semantics. People keep getting confused because both REQ_DISCARD and
REQ_WRITE_SAME use the WRITE SAME SCSI command. But the two uses are
completely orthogonal and governed by different heuristics in sd.c.

> Unless DM thinp can guarantee that the discarded blocks will
> always return zeroes (by zeroing before all partial block writes) my
> discard based dm-thinp implementation of WRITE_ZEROES is a complete
> throw-away (unless block zeroing is enabled.. which it never is because
> performance sucks with it).  So if an upper-level of the IO stack
> (e.g. ext4) were to assume that a block will _definitely_ have zeroes
> then DM thinp would fall short.

You don't have a way to mark those blocks as being full of zeroes
without actually writing them?

Note that the fallback to a zeroout command is to do a regular write. So
if DM doesn't zero the blocks, the block layer is going to it.

-- 
Martin K. Petersen	Oracle Linux Engineering

  parent reply	other threads:[~2017-03-31  2:34 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-23 14:33 RFC: always use REQ_OP_WRITE_ZEROES for zeroing offload Christoph Hellwig
2017-03-23 14:33 ` [PATCH 01/23] block: renumber REQ_OP_WRITE_ZEROES Christoph Hellwig
2017-03-28 16:12   ` Bart Van Assche
     [not found]     ` <1490717553.2573.4.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-03-30  8:53       ` hch-jcswGhMUV9g
2017-03-23 14:33 ` [PATCH 02/23] block: implement splitting of REQ_OP_WRITE_ZEROES bios Christoph Hellwig
2017-03-23 14:33 ` [PATCH 03/23] sd: implement REQ_OP_WRITE_ZEROES Christoph Hellwig
2017-03-28 18:50   ` Bart Van Assche
     [not found]     ` <1490726988.2573.16.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-03-28 19:33       ` Mike Snitzer
2017-03-30  2:25       ` Martin K. Petersen
2017-03-29 14:51     ` Paolo Bonzini
2017-03-29 16:28       ` Bart Van Assche
2017-03-29 16:53         ` Paolo Bonzini
2017-03-23 14:33 ` [PATCH 04/23] md: support REQ_OP_WRITE_ZEROES Christoph Hellwig
2017-03-23 14:33 ` [PATCH 05/23] dm: " Christoph Hellwig
2017-03-23 14:33 ` [PATCH 06/23] dm-kcopyd: switch to use REQ_OP_WRITE_ZEROES Christoph Hellwig
2017-03-23 14:55   ` Mike Snitzer
2017-03-23 14:56     ` Christoph Hellwig
2017-03-23 15:10       ` Mike Snitzer
2017-03-27  9:12         ` Christoph Hellwig
2017-03-23 14:33 ` [PATCH 07/23] block: stop using blkdev_issue_write_same for zeroing Christoph Hellwig
2017-03-23 14:33 ` [PATCH 08/23] block: add a flags argument to (__)blkdev_issue_zeroout Christoph Hellwig
2017-03-23 14:33 ` [PATCH 09/23] block: add a REQ_UNMAP flag for REQ_OP_WRITE_ZEROES Christoph Hellwig
2017-03-23 14:33 ` [PATCH 10/23] block: add a new BLKDEV_ZERO_NOFALLBACK flag Christoph Hellwig
2017-03-23 14:33 ` [PATCH 11/23] block_dev: use blkdev_issue_zerout for hole punches Christoph Hellwig
2017-03-28 16:50   ` Bart Van Assche
     [not found]     ` <1490719834.2573.9.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-03-30  8:59       ` hch-jcswGhMUV9g
2017-03-23 14:33 ` [PATCH 12/23] sd: handle REQ_UNMAP Christoph Hellwig
     [not found]   ` <20170323143341.31549-13-hch-jcswGhMUV9g@public.gmane.org>
2017-03-28 16:48     ` Bart Van Assche
2017-03-29 14:57       ` Paolo Bonzini
     [not found]       ` <1490719722.2573.8.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-03-30  9:02         ` hch-jcswGhMUV9g
     [not found]           ` <20170330090201.GD12015-jcswGhMUV9g@public.gmane.org>
2017-03-30 15:28             ` Martin K. Petersen
2017-03-30 17:30               ` hch
     [not found]                 ` <20170330173020.GB24229-jcswGhMUV9g@public.gmane.org>
2017-03-31  2:19                   ` Martin K. Petersen
     [not found]                     ` <yq17f36yypg.fsf-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-03-31  7:18                       ` hch-jcswGhMUV9g
2017-03-23 14:33 ` [PATCH 13/23] nvme: implement REQ_OP_WRITE_ZEROES Christoph Hellwig
2017-03-23 14:33 ` [PATCH 14/23] zram: " Christoph Hellwig
2017-03-23 14:33 ` [PATCH 15/23] loop: " Christoph Hellwig
2017-03-23 14:33 ` [PATCH 16/23] brd: remove discard support Christoph Hellwig
2017-03-23 14:33 ` [PATCH 17/23] rbd: remove the discard_zeroes_data flag Christoph Hellwig
2017-03-23 14:33 ` [PATCH 18/23] rsxx: " Christoph Hellwig
2017-03-23 14:33 ` [PATCH 19/23] mmc: " Christoph Hellwig
2017-03-23 14:33 ` [PATCH 20/23] block: stop using discards for zeroing Christoph Hellwig
2017-03-23 14:33 ` [PATCH 21/23] drbd: make intelligent use of blkdev_issue_zeroout Christoph Hellwig
2017-03-23 14:33 ` [PATCH 22/23] drbd: implement REQ_OP_WRITE_ZEROES Christoph Hellwig
     [not found]   ` <20170323143341.31549-23-hch-jcswGhMUV9g@public.gmane.org>
2017-03-30 10:06     ` Lars Ellenberg
2017-03-30 11:44       ` Christoph Hellwig
2017-03-30 12:50         ` [Drbd-dev] " Lars Ellenberg
     [not found]         ` <20170330114408.GA15777-jcswGhMUV9g@public.gmane.org>
2017-03-30 13:49           ` Mike Snitzer
     [not found]             ` <20170330134957.GA508-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-03-30 15:20               ` Martin K. Petersen
2017-03-30 23:15                 ` Mike Snitzer
     [not found]                   ` <20170330231550.GA3102-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-03-31  2:34                     ` Martin K. Petersen [this message]
2017-03-31  7:17                   ` Christoph Hellwig
2017-03-23 14:33 ` [PATCH 23/23] block: remove the discard_zeroes_data flag Christoph Hellwig
2017-03-28 17:00   ` Bart Van Assche
2017-03-29 14:52     ` Paolo Bonzini
2017-03-30  9:06     ` hch
     [not found]       ` <20170330090655.GF12015-jcswGhMUV9g@public.gmane.org>
2017-03-30 15:29         ` Martin K. Petersen
2017-03-30 17:29           ` hch
     [not found] ` <20170323143341.31549-1-hch-jcswGhMUV9g@public.gmane.org>
2017-03-23 15:54   ` RFC: always use REQ_OP_WRITE_ZEROES for zeroing offload Lars Ellenberg
2017-03-23 17:02     ` Mike Snitzer
     [not found]       ` <20170323170221.GA20854-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-03-23 22:53         ` Lars Ellenberg
2017-03-29 14:57           ` Paolo Bonzini
     [not found]     ` <20170323155410.GD1138-w1SgEEioFePxa46PmUWvFg@public.gmane.org>
2017-03-27  9:10       ` Christoph Hellwig
     [not found]         ` <20170327091056.GB6879-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-03-27 14:03           ` Mike Snitzer
     [not found]             ` <20170327140307.GA13020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-03-27 14:57               ` Christoph Hellwig
2017-03-27 15:08             ` [Drbd-dev] " Bart Van Assche
2017-03-30  9:04       ` Christoph Hellwig
2017-03-30 15:12 ` Mike Snitzer
2017-03-30 15:22   ` Martin K. Petersen
     [not found]     ` <yq1lgrm3i36.fsf-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-03-30 15:38       ` Mike Snitzer

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=yq137duyy1u.fsf@oracle.com \
    --to=martin.petersen-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
    --cc=agk-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \
    --cc=dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=drbd-dev-cunTk1MwBs8qoQakbn7OcQ@public.gmane.org \
    --cc=hch-jcswGhMUV9g@public.gmane.org \
    --cc=linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-raid-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=philipp.reisner-63ez5xqkn6DQT0dZR+AlfA@public.gmane.org \
    --cc=shli-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=snitzer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    /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).