From 9db37f3cae8ee64bbf5a424dae1a20e5e142737f Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Thu, 2 Jun 2022 22:03:38 +0530 Subject: [PATCH] examples/nvme/identify: improve zone report logging Print string values for zone state and zone type. Check for zone descriptor extension valid field before printing the logs. Signed-off-by: Ankit Kumar Change-Id: I3c5fa9a7a82f3fd6354c1430ec4f4c6259faeffb Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12869 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris Reviewed-by: Aleksey Marchuk Reviewed-by: Krishna Kanth Reddy --- examples/nvme/identify/identify.c | 36 +++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/examples/nvme/identify/identify.c b/examples/nvme/identify/identify.c index 32e652301..e803a18b5 100644 --- a/examples/nvme/identify/identify.c +++ b/examples/nvme/identify/identify.c @@ -731,8 +731,39 @@ print_zns_zone(uint8_t *report, uint32_t index, uint32_t zdes) desc = (struct spdk_nvme_zns_zone_desc *)(report + zd_index); - printf("ZSLBA: 0x%016"PRIx64" ZCAP: 0x%016"PRIx64" WP: 0x%016"PRIx64" ZS: %x ZT: %x ZA: %x\n", - desc->zslba, desc->zcap, desc->wp, desc->zs, desc->zt, desc->za.raw); + printf("ZSLBA: 0x%016"PRIx64" ZCAP: 0x%016"PRIx64" WP: 0x%016"PRIx64" ZS: ", desc->zslba, + desc->zcap, desc->wp); + switch (desc->zs) { + case SPDK_NVME_ZONE_STATE_EMPTY: + printf("Empty"); + break; + case SPDK_NVME_ZONE_STATE_IOPEN: + printf("Implicit open"); + break; + case SPDK_NVME_ZONE_STATE_EOPEN: + printf("Explicit open"); + break; + case SPDK_NVME_ZONE_STATE_CLOSED: + printf("Closed"); + break; + case SPDK_NVME_ZONE_STATE_RONLY: + printf("Read only"); + break; + case SPDK_NVME_ZONE_STATE_FULL: + printf("Full"); + break; + case SPDK_NVME_ZONE_STATE_OFFLINE: + printf("Offline"); + break; + default: + printf("Reserved"); + } + printf(" ZT: %s ZA: %x\n", (desc->zt == SPDK_NVME_ZONE_TYPE_SEQWR) ? "SWR" : "Reserved", + desc->za.raw); + + if (!desc->za.bits.zdev) { + return; + } for (i = 0; i < zdes; i += 8) { printf("zone_desc_ext[%d] : 0x%"PRIx64"\n", i, @@ -819,6 +850,7 @@ get_and_print_zns_zone_report(struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *q slba += zone_size_lba; handled_zones++; } + printf("\n"); } free(report_buf);