summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2018-02-01 19:47:16 +0000
committermav <mav@FreeBSD.org>2018-02-01 19:47:16 +0000
commit8c7ec97d26f3733b94c01cb182c03ee043bd409e (patch)
treecec5d03a4fac083c69e6f26689d20d457bf8b630
parent9b5263bcb0a74ad96dee79531f57be3bccc24803 (diff)
downloadFreeBSD-src-8c7ec97d26f3733b94c01cb182c03ee043bd409e.zip
FreeBSD-src-8c7ec97d26f3733b94c01cb182c03ee043bd409e.tar.gz
MFC r320425 (by imp):
Report some aspects of namespaces and namespace support in identify command.
-rw-r--r--sbin/nvmecontrol/identify.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sbin/nvmecontrol/identify.c b/sbin/nvmecontrol/identify.c
index 58492e2..c7da98e 100644
--- a/sbin/nvmecontrol/identify.c
+++ b/sbin/nvmecontrol/identify.c
@@ -44,6 +44,7 @@ static void
print_controller(struct nvme_controller_data *cdata)
{
uint8_t str[128];
+ char cbuf[UINT128_DIG + 1];
printf("Controller Capabilities/Features\n");
printf("================================\n");
@@ -65,8 +66,8 @@ print_controller(struct nvme_controller_data *cdata)
printf("Unlimited\n");
else
printf("%d\n", PAGE_SIZE * (1 << cdata->mdts));
- printf("\n");
+ printf("\n");
printf("Admin Command Set Attributes\n");
printf("============================\n");
printf("Security Send/Receive: %s\n",
@@ -75,6 +76,8 @@ print_controller(struct nvme_controller_data *cdata)
cdata->oacs.format ? "Supported" : "Not Supported");
printf("Firmware Activate/Download: %s\n",
cdata->oacs.firmware ? "Supported" : "Not Supported");
+ printf("Namespace Managment: %s\n",
+ cdata->oacs.nsmgmt ? "Supported" : "Not Supported");
printf("Abort Command Limit: %d\n", cdata->acl+1);
printf("Async Event Request Limit: %d\n", cdata->aerl+1);
printf("Number of Firmware Slots: ");
@@ -91,8 +94,8 @@ print_controller(struct nvme_controller_data *cdata)
cdata->lpa.ns_smart ? "Yes" : "No");
printf("Error Log Page Entries: %d\n", cdata->elpe+1);
printf("Number of Power States: %d\n", cdata->npss+1);
- printf("\n");
+ printf("\n");
printf("NVM Command Set Attributes\n");
printf("==========================\n");
printf("Submission Queue Entry Size\n");
@@ -110,6 +113,16 @@ print_controller(struct nvme_controller_data *cdata)
cdata->oncs.dsm ? "Supported" : "Not Supported");
printf("Volatile Write Cache: %s\n",
cdata->vwc.present ? "Present" : "Not Present");
+
+ if (cdata->oacs.nsmgmt) {
+ printf("\n");
+ printf("Namespace Drive Attributes\n");
+ printf("==========================\n");
+ printf("NVM total cap: %s\n",
+ uint128_to_str(to128(cdata->untncap.tnvmcap), cbuf, sizeof(cbuf)));
+ printf("NVM unallocated cap: %s\n",
+ uint128_to_str(to128(cdata->untncap.unvmcap), cbuf, sizeof(cbuf)));
+ }
}
static void
OpenPOWER on IntegriCloud