Re: [PATCH 00/16] support non power of 2 zoned devices

From: David Sterba
Date: Wed May 04 2022 - 17:18:59 EST


On Tue, May 03, 2022 at 11:12:04AM +0200, Pankaj Raghav wrote:
> Hi Johannes,
> On 2022-05-03 00:07, Johannes Thumshirn wrote:
> >> There was an effort previously [1] to add support to non po2 devices via
> >> device level emulation but that was rejected with a final conclusion
> >> to add support for non po2 zoned device in the complete stack[2].
> >
> > Hey Pankaj,
> >
> > One thing I'm concerned with this patches is, once we have npo2 zones (or to be precise
> > not fs_info->sectorsize aligned zones) we have to check on every allocation if we still
> > have at least have fs_info->sectorsize bytes left in a zone. If not we need to
> > explicitly finish the zone, otherwise we'll run out of max active zones.
> >
> This commit: `btrfs: zoned: relax the alignment constraint for zoned
> devices` makes sure the zone size is BTRFS_STRIPE_LEN aligned (64K). So
> even the npo2 zoned device should be aligned to `fs_info->sectorsize`,
> which is typically 4k.
>
> This was one of the comment that came from David Sterba:
> https://lore.kernel.org/all/20220315142740.GU12643@xxxxxxxxxxxxx/
> where he suggested to have some sane alignment for the zone sizes.

My idea of 'sane' value would be 1M, that we have 4K for sectors is
because of the 1:1 mapping to pages, but RAM sizes are on a different
scale than storage devices. The 4K is absolute minimum but if the page
size is taken as a basic constraint, ARM has 64K and there are some 256K
arches.