[Report] blk-zoned/ZNS: non_power_of_2 of zone->len]

Ming Lei ming.lei at redhat.com
Thu Jan 11 17:13:28 PST 2024


----- Forwarded message from Ming Lei <ming.lei at redhat.com> -----

Add linux-nvme

Date: Fri, 12 Jan 2024 09:08:47 +0800
From: Ming Lei <ming.lei at redhat.com>
To: linux-block at vger.kernel.org, Damien Le Moal <dlemoal at kernel.org>
Cc: ming.lei at redhat.com, Yi Zhang <yi.zhang at redhat.com>, John Meneghini <jmeneghi at redhat.com>
Subject: [Report] blk-zoned/ZNS: non_power_of_2 of zone->len

Hello Damien and Guys,

Yi reported that the following failure:

Oct 18 15:24:15 localhost kernel: nvme nvme4: invalid zone size:196608 for namespace:1
Oct 18 15:24:33 localhost smartd[2303]: Device: /dev/nvme4, opened
Oct 18 15:24:33 localhost smartd[2303]: Device: /dev/nvme4, NETAPPX4022S173A4T0NTZ, S/N:S66NNE0T800169, FW:MVP40B7B, 4.09 TB

Looks current blk-zoned requires zone->len to be power_of_2() since
commit:

6c6b35491422 ("block: set the zone size in blk_revalidate_disk_zones atomically")

And the original power_of_2() requirement is from the following commit
for ZBC and ZAC.

d9dd73087a8b ("block: Enhance blk_revalidate_disk_zones()")

Meantime block layer does support non-power_of_2 chunk sectors limit.

The question is if there is such hard requirement for ZNS, and I can't see
any such words in NVMe Zoned Namespace Command Set Specification.

So is it one NVMe firmware issue? or blk-zoned problem with too strict(power_of_2)
requirement on zone->len?


Thanks,
Ming


----- End forwarded message -----




More information about the Linux-nvme mailing list