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. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel