[dm-devel] [PATCH v4 01/11] block: improve handling of all zones reset operation

Damien Le Moal Damien.LeMoal at wdc.com
Tue May 25 06:35:06 UTC 2021


On 2021/05/25 15:15, Chaitanya Kulkarni wrote:
> On 5/24/21 7:25 PM, Damien Le Moal wrote:
>> SCSI, ZNS and null_blk zoned devices support resetting all zones using
>> a single command (REQ_OP_ZONE_RESET_ALL), as indicated using the device
>> request queue flag QUEUE_FLAG_ZONE_RESETALL. This flag is not set for
>> device mapper targets creating zoned devices. In this case, a user
>> request for resetting all zones of a device is processed in
>> blkdev_zone_mgmt() by issuing a REQ_OP_ZONE_RESET operation for each
>> zone of the device. This leads to different behaviors of the
>> BLKRESETZONE ioctl() depending on the target device support for the
>> reset all operation. E.g.
>>
>> blkzone reset /dev/sdX
>>
>> will reset all zones of a SCSI device using a single command that will
>> ignore conventional, read-only or offline zones.
>>
>> But a dm-linear device including conventional, read-only or offline
>> zones cannot be reset in the same manner as some of the single zone
>> reset operations issued by blkdev_zone_mgmt() will fail. E.g.:
>>
>> blkzone reset /dev/dm-Y
>> blkzone: /dev/dm-0: BLKRESETZONE ioctl failed: Remote I/O error
>>
>> To simplify applications and tools development, unify the behavior of
>> the all-zone reset operation by modifying blkdev_zone_mgmt() to not
>> issue a zone reset operation for conventional, read-only and offline
>> zones, thus mimicking what an actual reset-all device command does on a
>> device supporting REQ_OP_ZONE_RESET_ALL. This emulation is done using
>> the new function blkdev_zone_reset_all_emulated(). The zones needing a
>> reset are identified using a bitmap that is initialized using a zone
>> report. Since empty zones do not need a reset, also ignore these zones.
>> The function blkdev_zone_reset_all() is introduced for block devices
>> natively supporting reset all operations. blkdev_zone_mgmt() is modified
>> to call either function to execute an all zone reset request.
>>
>> Signed-off-by: Damien Le Moal <damien.lemoal at wdc.com>
>> [hch: split into multiple functions]
>> Signed-off-by: Christoph Hellwig <hch at lst.de>
> 
> Apart from nit mentioned earlier, looks good.
> 
> Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni at wdc.com>

Thanks. Will send v5 with a correction of the extra space.

> 
> 
> 


-- 
Damien Le Moal
Western Digital Research






More information about the dm-devel mailing list