From: Damien Le Moal <damien.lemoal@opensource.wdc.com>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: Pankaj Raghav <p.raghav@samsung.com>,
jaegeuk@kernel.org, axboe@kernel.dk, snitzer@kernel.org,
hch@lst.de, naohiro.aota@wdc.com, sagi@grimberg.me,
dsterba@suse.com, johannes.thumshirn@wdc.com,
linux-kernel@vger.kernel.org, linux-btrfs@vger.kernel.org,
clm@fb.com, gost.dev@samsung.com, chao@kernel.org,
linux-f2fs-devel@lists.sourceforge.net, josef@toxicpanda.com,
jonathan.derrick@linux.dev, agk@redhat.com, kbusch@kernel.org,
kch@nvidia.com, linux-nvme@lists.infradead.org,
dm-devel@redhat.com, bvanassche@acm.org,
jiangbo.365@bytedance.com, linux-fsdevel@vger.kernel.org,
matias.bjorling@wdc.com, linux-block@vger.kernel.org
Subject: Re: [PATCH 16/16] dm-zoned: ensure only power of 2 zone sizes are allowed
Date: Fri, 29 Apr 2022 06:43:58 +0900 [thread overview]
Message-ID: <ce56cb7d-f184-aad1-4935-5f622e7afe5d@opensource.wdc.com> (raw)
In-Reply-To: <YmrQFu9EbMmrL2Ys@bombadil.infradead.org>
On 4/29/22 02:34, Luis Chamberlain wrote:
> On Thu, Apr 28, 2022 at 08:42:41AM +0900, Damien Le Moal wrote:
>> On 4/28/22 01:02, Pankaj Raghav wrote:
>>> From: Luis Chamberlain <mcgrof@kernel.org>
>>>
>>> Today dm-zoned relies on the assumption that you have a zone size
>>> with a power of 2. Even though the block layer today enforces this
>>> requirement, these devices do exist and so provide a stop-gap measure
>>> to ensure these devices cannot be used by mistake
>>>
>>> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
>>> Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
>>> ---
>>> drivers/md/dm-zone.c | 12 ++++++++++++
>>> 1 file changed, 12 insertions(+)
>>>
>>> diff --git a/drivers/md/dm-zone.c b/drivers/md/dm-zone.c
>>> index 57daa86c19cf..221e0aa0f1a7 100644
>>> --- a/drivers/md/dm-zone.c
>>> +++ b/drivers/md/dm-zone.c
>>> @@ -231,6 +231,18 @@ static int dm_revalidate_zones(struct mapped_device *md, struct dm_table *t)
>>> struct request_queue *q = md->queue;
>>> unsigned int noio_flag;
>>> int ret;
>>> + struct block_device *bdev = md->disk->part0;
>>> + sector_t zone_sectors;
>>> + char bname[BDEVNAME_SIZE];
>>> +
>>> + zone_sectors = bdev_zone_sectors(bdev);
>>> +
>>> + if (!is_power_of_2(zone_sectors)) {
>>> + DMWARN("%s: %s only power of two zone size supported\n",
>>> + dm_device_name(md),
>>> + bdevname(bdev, bname));
>>> + return 1;
>>> + }
>>
>> Why ?
>>
>> See my previous email about still allowing ZC < ZS for non power of 2 zone
>> size drives. dm-zoned can easily support non power of 2 zone size as long
>> as ZC == ZS for all zones.
>
> Great, thanks for the heads up.
>
>> The problem with dm-zoned is ZC < ZS *AND* potentially variable ZC per
>> zone. That cannot be supported easily (still not impossible, but
>> definitely a lot more complex).
>
> I see thanks.
>
> Testing would still be required to ensure this all works well with npo2.
> So I'd prefer to do that as a separate effort, even if it is easy. So
> for now I think it makes sense to avoid this as this is not yet well
> tested.
>
> As with filesystem support, we've even have gotten hints that support
> for npo2 should be easy, but without proper testing it would not be
> prudent to enable support for users yet.
>
> One step at a time.
Yes, in general, I agree. But in this case, that will create kernel
versions that end up having partial support for zoned drives. Not ideal to
say the least. So if the patches are not that big, I would rather like to
see everything go into a single release.
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2022-04-28 21:44 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220427160256eucas1p2db2b58792ffc93026d870c260767da14@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 00/16] support non power of 2 zoned devices Pankaj Raghav
[not found] ` <CGME20220427160257eucas1p21fb58d0129376a135fdf0b9c2fe88895@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 01/16] block: make blkdev_nr_zones and blk_queue_zone_no generic for npo2 zsze Pankaj Raghav
2022-04-29 17:16 ` Adam Manzanares
2022-05-03 16:37 ` Bart Van Assche
2022-05-03 16:43 ` Damien Le Moal
2022-05-04 8:35 ` Pankaj Raghav
2022-05-04 16:52 ` Hannes Reinecke
[not found] ` <CGME20220427160258eucas1p19548a7094f67b4c9f340add776f60082@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 02/16] block: add blk_queue_zone_aligned and bdev_zone_aligned helper Pankaj Raghav
2022-04-27 23:52 ` Bart Van Assche
2022-05-04 16:55 ` Hannes Reinecke
[not found] ` <CGME20220427160259eucas1p25aab0637fec229cd1140e6aa08678f38@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 03/16] block: add bdev_zone_no helper Pankaj Raghav
2022-04-27 23:31 ` Damien Le Moal
2022-04-27 23:53 ` Bart Van Assche
2022-05-04 16:55 ` Hannes Reinecke
[not found] ` <CGME20220427160300eucas1p1470fe30535849de6204bb78d7083cb3a@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 04/16] block: allow blk-zoned devices to have non-power-of-2 zone size Pankaj Raghav
2022-04-27 23:37 ` Damien Le Moal
2022-04-28 17:29 ` Luis Chamberlain
2022-05-04 16:59 ` Hannes Reinecke
[not found] ` <CGME20220427160301eucas1p147d0dced70946e20dd2dd046b94b8224@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 05/16] nvme: zns: Allow ZNS drives that have non-power_of_2 " Pankaj Raghav
2022-04-29 17:23 ` Adam Manzanares
2022-05-03 16:50 ` Bart Van Assche
2022-05-04 8:38 ` Pankaj Raghav
2022-05-04 17:03 ` Hannes Reinecke
[not found] ` <CGME20220427160302eucas1p1aaba7a309778d3440c3315ad899e4035@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 06/16] nvmet: use blk_queue_zone_no() Pankaj Raghav
2022-04-29 17:27 ` Adam Manzanares
2022-05-03 16:54 ` Bart Van Assche
2022-05-04 17:05 ` Hannes Reinecke
[not found] ` <CGME20220427160303eucas1p1c7d1b743e9ecf77b4f203bdeccbe382e@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 07/16] btrfs: zoned: Cache superblock location in btrfs_zoned_device_info Pankaj Raghav
[not found] ` <CGME20220427160304eucas1p1a0080df82f76c39882c4298c3c3d99fd@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 08/16] btrfs: zoned: add generic btrfs helpers for zoned devices Pankaj Raghav
[not found] ` <CGME20220427160305eucas1p26831c19df0b2097e42209edcf73526b7@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 09/16] btrfs: zoned: Make sb_zone_number function non power of 2 compatible Pankaj Raghav
[not found] ` <CGME20220427160306eucas1p10514a8597007ed9d5e269d659df58d35@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 10/16] btrfs: zoned: use btrfs zone helpers to support non po2 zoned devices Pankaj Raghav
[not found] ` <CGME20220427160307eucas1p229f9ebae38fcca9974909799e5e63ccf@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 11/16] btrfs: zoned: relax the alignment constraint for " Pankaj Raghav
[not found] ` <CGME20220427160309eucas1p2f677c8db581616f994473f17c4a5bd44@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 12/16] zonefs: allow non power of 2 " Pankaj Raghav
2022-04-27 23:39 ` Damien Le Moal
2022-04-28 15:54 ` Pankaj Raghav
2022-04-28 21:49 ` Damien Le Moal
2022-04-29 7:55 ` Pankaj Raghav
[not found] ` <CGME20220427160310eucas1p28cd3c5ff4fb7a04bc77c4c0b9d96bb74@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 13/16] null_blk: " Pankaj Raghav
2022-04-29 17:30 ` Adam Manzanares
2022-05-03 17:01 ` Bart Van Assche
2022-05-04 17:10 ` Hannes Reinecke
[not found] ` <CGME20220427160311eucas1p151141fc73adc590b40ad6f935b1ac214@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 14/16] f2fs: call bdev_zone_sectors() only once on init_blkz_info() Pankaj Raghav
2022-05-03 20:04 ` Jaegeuk Kim
[not found] ` <CGME20220427160312eucas1p279bcffd97ef83bd3617a38b80d979746@eucas1p2.samsung.com>
2022-04-27 16:02 ` [PATCH 15/16] f2fs: ensure only power of 2 zone sizes are allowed Pankaj Raghav
2022-05-03 20:05 ` Jaegeuk Kim
2022-05-04 8:53 ` Pankaj Raghav
[not found] ` <CGME20220427160313eucas1p1feecf74ec15c8c3d9250444710fd1676@eucas1p1.samsung.com>
2022-04-27 16:02 ` [PATCH 16/16] dm-zoned: " Pankaj Raghav
2022-04-27 23:42 ` Damien Le Moal
2022-04-28 17:34 ` Luis Chamberlain
2022-04-28 21:43 ` Damien Le Moal [this message]
2022-04-28 22:06 ` Luis Chamberlain
2022-05-04 17:11 ` Hannes Reinecke
2022-05-02 22:07 ` [PATCH 00/16] support non power of 2 zoned devices Johannes Thumshirn
2022-05-03 9:12 ` Pankaj Raghav
2022-05-04 21:14 ` David Sterba
2022-05-05 7:28 ` Pankaj Raghav
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ce56cb7d-f184-aad1-4935-5f622e7afe5d@opensource.wdc.com \
--to=damien.lemoal@opensource.wdc.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=chao@kernel.org \
--cc=clm@fb.com \
--cc=dm-devel@redhat.com \
--cc=dsterba@suse.com \
--cc=gost.dev@samsung.com \
--cc=hch@lst.de \
--cc=jaegeuk@kernel.org \
--cc=jiangbo.365@bytedance.com \
--cc=johannes.thumshirn@wdc.com \
--cc=jonathan.derrick@linux.dev \
--cc=josef@toxicpanda.com \
--cc=kbusch@kernel.org \
--cc=kch@nvidia.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=matias.bjorling@wdc.com \
--cc=mcgrof@kernel.org \
--cc=naohiro.aota@wdc.com \
--cc=p.raghav@samsung.com \
--cc=sagi@grimberg.me \
--cc=snitzer@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).