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 <ankit.kumar@samsung.com>
Change-Id: I3c5fa9a7a82f3fd6354c1430ec4f4c6259faeffb
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12869
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Krishna Kanth Reddy <krish.reddy@samsung.com>
This commit is contained in:
Ankit Kumar 2022-06-02 22:03:38 +05:30 committed by Tomasz Zawadzki
parent 5b290d2147
commit 9db37f3cae

View File

@ -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);