[PATCH 5/6] block: add zone attr. to zone mgmt IOCTL struct
Javier González
javier at javigon.com
Thu Jun 25 15:51:25 EDT 2020
On 25.06.2020 17:13, Matias Bjørling wrote:
>On 25/06/2020 14.21, Javier González wrote:
>>From: Javier González <javier.gonz at samsung.com>
>>
>>Add zone attributes field to the blk_zone structure. Use ZNS attributes
>>as base for zoned block devices in general.
>>
>>Signed-off-by: Javier González <javier.gonz at samsung.com>
>>Signed-off-by: SelvaKumar S <selvakuma.s1 at samsung.com>
>>Signed-off-by: Kanchan Joshi <joshi.k at samsung.com>
>>Signed-off-by: Nitesh Shetty <nj.shetty at samsung.com>
>>---
>> drivers/nvme/host/zns.c | 1 +
>> include/uapi/linux/blkzoned.h | 13 ++++++++++++-
>> 2 files changed, 13 insertions(+), 1 deletion(-)
>>
>>diff --git a/drivers/nvme/host/zns.c b/drivers/nvme/host/zns.c
>>index 258d03610cc0..7d8381fe7665 100644
>>--- a/drivers/nvme/host/zns.c
>>+++ b/drivers/nvme/host/zns.c
>>@@ -195,6 +195,7 @@ static int nvme_zone_parse_entry(struct nvme_ns *ns,
>> zone.capacity = nvme_lba_to_sect(ns, le64_to_cpu(entry->zcap));
>> zone.start = nvme_lba_to_sect(ns, le64_to_cpu(entry->zslba));
>> zone.wp = nvme_lba_to_sect(ns, le64_to_cpu(entry->wp));
>>+ zone.attr = entry->za;
>> return cb(&zone, idx, data);
>> }
>>diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h
>>index 0c49a4b2ce5d..2e43a00e3425 100644
>>--- a/include/uapi/linux/blkzoned.h
>>+++ b/include/uapi/linux/blkzoned.h
>>@@ -82,6 +82,16 @@ enum blk_zone_report_flags {
>> BLK_ZONE_REP_CAPACITY = (1 << 0),
>> };
>>+/**
>>+ * Zone Attributes
>>+ */
>>+enum blk_zone_attr {
>>+ BLK_ZONE_ATTR_ZFC = 1 << 0,
>>+ BLK_ZONE_ATTR_FZR = 1 << 1,
>>+ BLK_ZONE_ATTR_RZR = 1 << 2,
>
>The RZR bit is equivalent to the RESET bit accessible through the
>reset byte in struct blk_zone.
>
>ZFC is tied to Zone Active Excursions, as there is no support in the
>kernel zone model for that. This should probably not be added until
>there is generic support.
>
>Damien, could we overload the struct blk_zine reset variable for FZR?
>I don't believe we can due to backward compatibility. Is that your
>understanding as well?
>
>>+ BLK_ZONE_ATTR_ZDEV = 1 << 7,
>
>There is not currently an equivalent for zone descriptor extensions in
>ZAC/ZBC. The addition of this field should probably be in a patch that
>adds generic support for zone descriptor extensions.
The intention was to just report the values on the IOCTL and make sure
that changes to struct blk_zone are OK.
>>+};
>>+
>> /**
>> * struct blk_zone - Zone descriptor for BLKREPORTZONE ioctl.
>> *
>>@@ -108,7 +118,8 @@ struct blk_zone {
>> __u8 cond; /* Zone condition */
>> __u8 non_seq; /* Non-sequential write resources active */
>> __u8 reset; /* Reset write pointer recommended */
>>- __u8 resv[4];
>>+ __u8 attr; /* Zone attributes */
>>+ __u8 resv[3];
>> __u64 capacity; /* Zone capacity in number of sectors */
>> __u8 reserved[24];
>> };
>
>
More information about the Linux-nvme
mailing list