• Damien Le Moal's avatar
    block: introduce zone_write_granularity limit · a805a4fa
    Damien Le Moal authored
    Per ZBC and ZAC specifications, host-managed SMR hard-disks mandate that
    all writes into sequential write required zones be aligned to the device
    physical block size. However, NVMe ZNS does not have this constraint and
    allows write operations into sequential zones to be aligned to the
    device logical block size. This inconsistency does not help with
    software portability across device types.
    
    To solve this, introduce the zone_write_granularity queue limit to
    indicate the alignment constraint, in bytes, of write operations into
    zones of a zoned block device. This new limit is exported as a
    read-only sysfs queue attribute and the helper
    blk_queue_zone_write_granularity() introduced for drivers to set this
    limit.
    
    The function blk_queue_set_zoned() is modified to set this new limit to
    the device logical block size by default. NVMe ZNS devices as well as
    zoned nullb devices use this default value as is. The scsi disk driver
    is modified to execute the blk_queue_zone_write_granularity() helper to
    set the zone write granularity of host-managed SMR disks to the disk
    physical block size.
    
    The accessor functions queue_zone_write_granularity() and
    bdev_zone_write_granularity() are also introduced.
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@edc.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    a805a4fa
queue-sysfs.rst 11.2 KB