On 11/10/19 6:39 PM, Damien Le Moal wrote: > This series of patches introduces changes to zoned block device handling > code with the intent to simplify the code while optimizing run-time > operation, particularly in the area of zone reporting. > > The first patch lifts the device zone check code out of the sd driver > and reimplements these zone checks generically as part of > blk_revalidate_disk_zones(). This avoids zoned block device drivers to > have to implement these checks. The second patch simplifies this > function code for the !zoned case. > > The third patch is a small cleanup of zone report processing in > preparation for the fourth patch which removes support for partitions > on zoned block devices. As mentioned in that patch commit message, none > of the known partitioning tools support zoned devices and there are no > known use case in the field of SMR disks being used with partitions. > Dropping partition supports allows to significantly simplify the code > for zone report as zone sector values remapping becomes unnecessary. > > Patch 5 to 6 are small cleanups and fixes of the null_blk driver zoned > mode. > > The prep patch 7 optimizes zone report buffer allocation for the SCSI > sd driver. Finally, patch 8 introduces a new interface for report zones > handling using a callback function executed per zone reported by the > device. This allows avoiding the need to allocate large arrays of > blk_zone structures for the execution of zone reports. This can > significantly reduce memory usage and pressure on the memory management > system while significantly simplify the code all over. > > Overall, this series not only reduces significantly the code size, it > also improves run-time memory usage for zone report execution. > > This series applies cleanly on the for-next block tree on top of the > zone management operation series. It may however create a conflict with > Christoph's reqork of disk size revalidation. Please consider this > series for inclusion in the 5.5 kernel. We're taking branching to new levels... I created for-5.5/zoned for this, which is for-5.5/block + for-5.5/drivers + for-5.5/drivers-post combined. The latter is a branch with the SCSI dependencies from Martin pulled in. -- Jens Axboe