On Fri, Sep 23 2022 at 1:36P -0400, Pankaj Raghav <p.raghav@xxxxxxxxxxx> wrote: > Only zoned devices with power-of-2(po2) number of sectors per zone(zone > size) were supported in linux but now non power-of-2(npo2) zone sizes > support has been added to the block layer. > > Filesystems such as F2FS and btrfs have support for zoned devices with > po2 zone size assumption. Before adding native support for npo2 zone > sizes, it was suggested to create a dm target for npo2 zone size device to > appear as a po2 zone size target so that file systems can initially > work without any explicit changes. > > The design of this target is very simple: remap the device zone size to > the zone capacity and change the zone size to be the nearest power of 2 > value. > > For e.g., a device with a zone size/capacity of 3M will have an equivalent > target layout as follows: > > Device layout :- > zone capacity = 3M > zone size = 3M > > |--------------|-------------| > 0 3M 6M > > Target layout :- > zone capacity=3M > zone size = 4M > > |--------------|---|--------------|---| > 0 3M 4M 7M 8M > > The area between target's zone capacity and zone size will be emulated > in the target. > The read IOs that fall in the emulated gap area will return 0 filled > bio and all the other IOs in that area will result in an error. > If a read IO span across the emulated area boundary, then the IOs are > split across them. All other IO operations that span across the emulated > area boundary will result in an error. > > The target can be easily created as follows: > dmsetup create <label> --table '0 <size_sects> po2zoned /dev/nvme<id>' > > The target does not support partial mapping of the underlying > device as there is no use-case for it. > > Note: > This target is not related to dm-zoned target, which exposes a zoned block > device as a regular block device without any write constraint. > > This target only exposes a different zone size than the underlying device. > The underlying device's other constraints will be directly exposed to the > target. > > Signed-off-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx> > Suggested-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> > Suggested-by: Damien Le Moal <damien.lemoal@xxxxxxx> > Suggested-by: Hannes Reinecke <hare@xxxxxxx> If/when this series is accepted by Jens and others the DM changes can just be included along with the rest of the series. Reviewed-by: Mike Snitzer <snitzer@xxxxxxxxxx>