example/identify: add new parameters under multi-process scenario

Change-Id: I7a415dbeb49aac778939fc7128371d93865fe927
Signed-off-by: CaoGang <gang.cao@intel.com>
This commit is contained in:
CaoGang 2017-04-24 16:12:23 +08:00 committed by Daniel Verkamp
parent ceb8f2a952
commit 8ff1c0298d

View File

@ -64,6 +64,12 @@ static bool g_hex_dump = false;
static int g_shm_id = -1;
static int g_dpdk_mem = 64;
static int g_master_core = 0;
static char g_core_mask[16] = "0x1";
static struct spdk_nvme_transport_id g_trid;
static void
@ -893,6 +899,8 @@ usage(const char *program_name)
spdk_tracelog_usage(stdout, "-t");
printf(" -i shared memory group ID\n");
printf(" -p core to run this application\n");
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(" -H show this usage\n");
@ -906,13 +914,27 @@ 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, "i:r:t:xH")) != -1) {
while ((op = getopt(argc, argv, "d:i:p:r:t:xH")) != -1) {
switch (op) {
case 'd':
g_dpdk_mem = atoi(optarg);
break;
case 'i':
g_shm_id = atoi(optarg);
break;
case 'x':
g_hex_dump = true;
case 'p':
g_master_core = atoi(optarg);
if (g_master_core < 0) {
fprintf(stderr, "Invalid core number\n");
return 1;
}
snprintf(g_core_mask, sizeof(g_core_mask), "0x%llx", 1ULL << g_master_core);
break;
case 'r':
if (spdk_nvme_transport_id_parse(&g_trid, optarg) != 0) {
fprintf(stderr, "Error parsing transport address\n");
return 1;
}
break;
case 't':
rc = spdk_log_set_trace_flag(optarg);
@ -928,11 +950,8 @@ parse_args(int argc, char **argv)
return 0;
#endif
break;
case 'r':
if (spdk_nvme_transport_id_parse(&g_trid, optarg) != 0) {
fprintf(stderr, "Error parsing transport address\n");
return 1;
}
case 'x':
g_hex_dump = true;
break;
case 'H':
default:
@ -973,8 +992,11 @@ int main(int argc, char **argv)
spdk_env_opts_init(&opts);
opts.name = "identify";
opts.core_mask = "0x1";
opts.shm_id = g_shm_id;
opts.dpdk_mem_size = g_dpdk_mem;
opts.dpdk_mem_channel = 1;
opts.dpdk_master_core = g_master_core;
opts.core_mask = g_core_mask;
spdk_env_init(&opts);
rc = 0;