Report some aspects of namespaces and namespace support in identify

command.

Sponsored by: Netflix
Submitted by: Matt Williams (via D11330)
This commit is contained in:
Warner Losh 2017-06-27 20:24:44 +00:00
parent 594ffc03cd
commit bbd508cae9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=320425

View File

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