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:
parent
ceb8f2a952
commit
8ff1c0298d
@ -64,6 +64,12 @@ static bool g_hex_dump = false;
|
|||||||
|
|
||||||
static int g_shm_id = -1;
|
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 struct spdk_nvme_transport_id g_trid;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -893,6 +899,8 @@ usage(const char *program_name)
|
|||||||
spdk_tracelog_usage(stdout, "-t");
|
spdk_tracelog_usage(stdout, "-t");
|
||||||
|
|
||||||
printf(" -i shared memory group ID\n");
|
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(" -x print hex dump of raw data\n");
|
||||||
printf(" -v verbose (enable warnings)\n");
|
printf(" -v verbose (enable warnings)\n");
|
||||||
printf(" -H show this usage\n");
|
printf(" -H show this usage\n");
|
||||||
@ -906,13 +914,27 @@ parse_args(int argc, char **argv)
|
|||||||
g_trid.trtype = SPDK_NVME_TRANSPORT_PCIE;
|
g_trid.trtype = SPDK_NVME_TRANSPORT_PCIE;
|
||||||
snprintf(g_trid.subnqn, sizeof(g_trid.subnqn), "%s", SPDK_NVMF_DISCOVERY_NQN);
|
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) {
|
switch (op) {
|
||||||
|
case 'd':
|
||||||
|
g_dpdk_mem = atoi(optarg);
|
||||||
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
g_shm_id = atoi(optarg);
|
g_shm_id = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
case 'x':
|
case 'p':
|
||||||
g_hex_dump = true;
|
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;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
rc = spdk_log_set_trace_flag(optarg);
|
rc = spdk_log_set_trace_flag(optarg);
|
||||||
@ -928,11 +950,8 @@ parse_args(int argc, char **argv)
|
|||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'x':
|
||||||
if (spdk_nvme_transport_id_parse(&g_trid, optarg) != 0) {
|
g_hex_dump = true;
|
||||||
fprintf(stderr, "Error parsing transport address\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'H':
|
case 'H':
|
||||||
default:
|
default:
|
||||||
@ -973,8 +992,11 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
spdk_env_opts_init(&opts);
|
spdk_env_opts_init(&opts);
|
||||||
opts.name = "identify";
|
opts.name = "identify";
|
||||||
opts.core_mask = "0x1";
|
|
||||||
opts.shm_id = g_shm_id;
|
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);
|
spdk_env_init(&opts);
|
||||||
|
|
||||||
rc = 0;
|
rc = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user