[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200325163223.GA27156@infradead.org>
Date: Wed, 25 Mar 2020 09:32:23 -0700
From: Christoph Hellwig <hch@...radead.org>
To: "Darrick J. Wong" <darrick.wong@...cle.com>
Cc: "Martin K. Petersen" <martin.petersen@...cle.com>,
Christoph Hellwig <hch@...radead.org>,
Kirill Tkhai <ktkhai@...tuozzo.com>, axboe@...nel.dk,
bob.liu@...cle.com, agk@...hat.com, snitzer@...hat.com,
dm-devel@...hat.com, song@...nel.org, tytso@....edu,
adilger.kernel@...ger.ca, Chaitanya.Kulkarni@....com,
ming.lei@...hat.com, osandov@...com, jthumshirn@...e.de,
minwoo.im.dev@...il.com, damien.lemoal@....com,
andrea.parri@...rulasolutions.com, hare@...e.com, tj@...nel.org,
ajay.joshi@....com, sagi@...mberg.me, dsterba@...e.com,
bvanassche@....org, dhowells@...hat.com, asml.silence@...il.com,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v7 0/6] block: Introduce REQ_ALLOCATE flag for
REQ_OP_WRITE_ZEROES
On Wed, Mar 25, 2020 at 09:26:56AM -0700, Darrick J. Wong wrote:
> > That said, I do think that we have traditionally put emphasis on the
> > wrong part of these operations. All we ever talk about wrt. discard and
> > friends is the zeroing aspect. But I actually think that, semantically,
> > the act of allocating and deallocating blocks is more important. And
> > that zeroing is an optional second order effect of those operations. So
> > if we could go back in time and nuke multi-range DSM TRIM/UNMAP, I would
> > like to have REQ_OP_ALLOCATE/REQ_OP_DEALLOCATE with an optional REQ_ZERO
> > flag. I think that would be cleaner. I have a much easier time wrapping
> > my head around "allocate this block and zero it if you can" than "zero
> > this block and do not deallocate it". But maybe that's just me.
>
> I'd love to transition to that. My brain is not good at following all
> the inverse logic that NOUNMAP spread everywhere. I have a difficult
> time following what the blockdev fallocate code does, which is sad since
> hch and I are the primary stuckees^Wmeddlers^Wauthors of that function. :/
I am very much against that for the following reason:
- the current REQ_OP_DISCARD is purely a hint, and implementations can
(and do) choose to ignore it
- REQ_OP_WRITE_ZEROES is an actual data integrity operation with
everything that entails
Going back to mixing these two will lead to a disaster sooner or later.
Powered by blists - more mailing lists