examples/nvme/identify: Optional VMD enumeration
New flag -V was added for VMD enabling. Change-Id: I0a31994acd5fd677366e8d5e49ad9a3583670c2c Signed-off-by: Wojciech Malikowski <wojciech.malikowski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/456967 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
9d92b9d420
commit
8b29e8bc7f
@ -36,6 +36,7 @@
|
||||
#include "spdk/endian.h"
|
||||
#include "spdk/log.h"
|
||||
#include "spdk/nvme.h"
|
||||
#include "spdk/vmd.h"
|
||||
#include "spdk/nvme_ocssd.h"
|
||||
#include "spdk/env.h"
|
||||
#include "spdk/nvme_intel.h"
|
||||
@ -94,6 +95,8 @@ static struct spdk_nvme_transport_id g_trid;
|
||||
|
||||
static int g_controllers_found = 0;
|
||||
|
||||
static bool g_vmd = false;
|
||||
|
||||
static void
|
||||
hex_dump(const void *data, size_t size)
|
||||
{
|
||||
@ -1661,6 +1664,7 @@ usage(const char *program_name)
|
||||
printf(" -d DPDK huge memory size in MB\n");
|
||||
printf(" -x print hex dump of raw data\n");
|
||||
printf(" -v verbose (enable warnings)\n");
|
||||
printf(" -V enumerate VMD\n");
|
||||
printf(" -H show this usage\n");
|
||||
}
|
||||
|
||||
@ -1672,7 +1676,7 @@ parse_args(int argc, char **argv)
|
||||
g_trid.trtype = SPDK_NVME_TRANSPORT_PCIE;
|
||||
snprintf(g_trid.subnqn, sizeof(g_trid.subnqn), "%s", SPDK_NVMF_DISCOVERY_NQN);
|
||||
|
||||
while ((op = getopt(argc, argv, "d:i:p:r:xHL:")) != -1) {
|
||||
while ((op = getopt(argc, argv, "d:i:p:r:xHL:V")) != -1) {
|
||||
switch (op) {
|
||||
case 'd':
|
||||
g_dpdk_mem = spdk_strtol(optarg, 10);
|
||||
@ -1720,8 +1724,12 @@ parse_args(int argc, char **argv)
|
||||
return 0;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 'H':
|
||||
usage(argv[0]);
|
||||
break;
|
||||
case 'V':
|
||||
g_vmd = true;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
return 1;
|
||||
@ -1773,6 +1781,11 @@ int main(int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (g_vmd && spdk_vmd_init()) {
|
||||
fprintf(stderr, "Failed to initialize VMD."
|
||||
" Some NVMe devices can be unavailable.\n");
|
||||
}
|
||||
|
||||
/* A specific trid is required. */
|
||||
if (strlen(g_trid.traddr) != 0) {
|
||||
ctrlr = spdk_nvme_connect(&g_trid, NULL, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user