Re: [PATCH v7 0/6] block: Introduce REQ_ALLOCATE flag for REQ_OP_WRITE_ZEROES

From: Christoph Hellwig
Date: Thu Mar 26 2020 - 05:30:00 EST


On Wed, Mar 25, 2020 at 01:23:33PM -0400, Martin K. Petersen wrote:
>
> Christoph,
>
> > 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
>
> If you want to keep emphasis on the "integrity operation" instead of the
> provisioning aspect, would you expect REQ_ALLOCATE (which may or may not
> zero blocks) to be considered a deterministic operation or a
> non-deterministic one? Should this depend on whether the device
> guarantees zeroing when provisioning blocks or not?

That's why I don't like the whole flags game very much. I'd rather
have REQ_OP_WRITE_ZEROES as the integrity operation that gurantees
zeroing, and a REQ_ALLOCATE that doesn't guarantee zeroing, just some
deterministic state of the blocks.