[dm-devel] [PATCH 26/27] scsi: sd: Separate zeroout and discard command choices
Hannes Reinecke
hare at suse.de
Thu Apr 6 06:17:51 UTC 2017
On 04/05/2017 07:21 PM, Christoph Hellwig wrote:
> From: "Martin K. Petersen" <martin.petersen at oracle.com>
>
> Now that zeroout and discards are distinct operations we need to
> separate the policy of choosing the appropriate command. Create a
> zeroing_mode which can be one of:
>
> write: Zeroout assist not present, use regular WRITE
> writesame: Allow WRITE SAME(10/16) with a zeroed payload
> writesame_16_unmap: Allow WRITE SAME(16) with UNMAP
> writesame_10_unmap: Allow WRITE SAME(10) with UNMAP
>
> The last two are conditional on the device being thin provisioned with
> LBPRZ=1 and LBPWS=1 or LBPWS10=1 respectively.
>
> Whether to set the UNMAP bit or not depends on the REQ_NOUNMAP flag. And
> if none of the _unmap variants are supported, regular WRITE SAME will be
> used if the device supports it.
>
> The zeroout_mode is exported in sysfs and the detected mode for a given
> device can be overridden using the string constants above.
>
> With this change in place we can now issue WRITE SAME(16) with UNMAP set
> for block zeroing applications that require hard guarantees and
> logical_block_size granularity. And at the same time use the UNMAP
> command with the device's preferred granulary and alignment for discard
> operations.
>
> Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> ---
> drivers/scsi/sd.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
> drivers/scsi/sd.h | 8 ++++++++
> 2 files changed, 61 insertions(+), 3 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare at suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare at suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
More information about the dm-devel
mailing list