[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c1fe810a-d796-f76b-5df1-8222b36e906e@samsung.com>
Date: Thu, 28 Apr 2022 21:04:16 +0200
From: Pankaj Raghav <p.raghav@...sung.com>
To: Damien Le Moal <damien.lemoal@...nsource.wdc.com>,
<jaegeuk@...nel.org>, <axboe@...nel.dk>, <snitzer@...nel.org>,
<hch@....de>, <mcgrof@...nel.org>, <naohiro.aota@....com>,
<sagi@...mberg.me>, <dsterba@...e.com>,
<johannes.thumshirn@....com>
CC: <linux-kernel@...r.kernel.org>, <clm@...com>,
<gost.dev@...sung.com>, <chao@...nel.org>, <josef@...icpanda.com>,
<jonathan.derrick@...ux.dev>, <agk@...hat.com>,
<kbusch@...nel.org>, <kch@...dia.com>,
<linux-nvme@...ts.infradead.org>, <bvanassche@....org>,
<jiangbo.365@...edance.com>, <matias.bjorling@....com>,
<linux-block@...r.kernel.org>
Subject: Re: [PATCH 04/16] block: allow blk-zoned devices to have
non-power-of-2 zone size
On 2022-04-28 01:37, Damien Le Moal wrote:
>> diff --git a/block/blk-core.c b/block/blk-core.c
>> index 937bb6b86331..850caf311064 100644
>> --- a/block/blk-core.c
>> +++ b/block/blk-core.c
>> @@ -634,8 +634,7 @@ static inline blk_status_t blk_check_zone_append(struct request_queue *q,
>> return BLK_STS_NOTSUPP;
>>
>> /* The bio sector must point to the start of a sequential zone */
>> - if (pos & (blk_queue_zone_sectors(q) - 1) ||
>> - !blk_queue_zone_is_seq(q, pos))
>> + if (!blk_queue_zone_aligned(q, pos) || !blk_queue_zone_is_seq(q, pos))
>
> blk_queue_zone_aligned() is a little confusing since "aligned" is also
> used for write-pointer aligned. I would rename this helper
>
> blk_queue_is_zone_start()
>
> or something like that.
>
That is a good idea and definitely a better name that
blk_queue_zone_aligned. I will fix it.
>> /*
>> @@ -489,14 +489,14 @@ static int blk_revalidate_zone_cb(struct blk_zone *zone, unsigned int idx,
>> * smaller last zone.
>> */
>> if (zone->start == 0) {
>> - if (zone->len == 0 || !is_power_of_2(zone->len)) {
>> - pr_warn("%s: Invalid zoned device with non power of two zone size (%llu)\n",
>> - disk->disk_name, zone->len);
>> + if (zone->len == 0) {
>> + pr_warn("%s: Invalid zoned device size",
>> + disk->disk_name);
>
> The message is weird now. Please change it to "Invalid zone size".
>
Ok.
> Also, the entire premise of this patch series is that it is hard for
> people to support the unusable sectors between zone capacity and zone end
> for drives with a zone capacity smaller than the zone size.
>
> Yet, here you do not check that zone capacity == zone size for drives that
> do not have a zone size equal to a power of 2 number of sectors. This
> means that we can still have drives with ZC < ZS AND ZS not equal to a
> power of 2. So from the point of view of your arguments, no gains at all.
> Any thoughts on this ?
>
That is a good point. Instead of implicitly assuming npo2 drives to have
ZC == ZS, it is better to be explicit during bringup. Thanks. As Luis
mentioned, I will add this condition in the next revision.
Powered by blists - more mailing lists