event: expose base virtaddr as an option

Signed-off-by: Jacek Kalwas <jacek.kalwas@intel.com>
Change-Id: I062ac2b1de5a89d521bde926433139457f9168f7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2777
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Jacek Kalwas 2020-06-04 18:05:53 +02:00 committed by Tomasz Zawadzki
parent 249f95daeb
commit 0555074965
3 changed files with 17 additions and 1 deletions

View File

@ -140,6 +140,7 @@ struct spdk_app_opts {
*/
logfunc *log;
uint64_t base_virtaddr;
};
/**

View File

@ -34,7 +34,7 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
SO_VER := 4
SO_VER := 5
SO_MINOR := 0
LIBNAME = event

View File

@ -53,6 +53,7 @@
#define SPDK_APP_DPDK_DEFAULT_MASTER_CORE -1
#define SPDK_APP_DPDK_DEFAULT_MEM_CHANNEL -1
#define SPDK_APP_DPDK_DEFAULT_CORE_MASK "0x1"
#define SPDK_APP_DPDK_DEFAULT_BASE_VIRTADDR 0x200000000000
#define SPDK_APP_DEFAULT_CORE_LIMIT 0x140000000 /* 5 GiB */
struct spdk_app {
@ -132,6 +133,8 @@ static const struct option g_cmdline_options[] = {
{"json-ignore-init-errors", no_argument, NULL, JSON_CONFIG_IGNORE_INIT_ERRORS_IDX},
#define IOVA_MODE_OPT_IDX 264
{"iova-mode", required_argument, NULL, IOVA_MODE_OPT_IDX},
#define BASE_VIRTADDR_OPT_IDX 265
{"base-virtaddr", required_argument, NULL, BASE_VIRTADDR_OPT_IDX},
};
/* Global section */
@ -286,6 +289,7 @@ spdk_app_opts_init(struct spdk_app_opts *opts)
opts->master_core = SPDK_APP_DPDK_DEFAULT_MASTER_CORE;
opts->mem_channel = SPDK_APP_DPDK_DEFAULT_MEM_CHANNEL;
opts->reactor_mask = NULL;
opts->base_virtaddr = SPDK_APP_DPDK_DEFAULT_BASE_VIRTADDR;
opts->print_level = SPDK_APP_DEFAULT_LOG_PRINT_LEVEL;
opts->rpc_addr = SPDK_DEFAULT_RPC_ADDR;
opts->num_entries = SPDK_APP_DEFAULT_NUM_TRACE_ENTRIES;
@ -508,6 +512,7 @@ app_setup_env(struct spdk_app_opts *opts)
env_opts.num_pci_addr = opts->num_pci_addr;
env_opts.pci_blacklist = opts->pci_blacklist;
env_opts.pci_whitelist = opts->pci_whitelist;
env_opts.base_virtaddr = opts->base_virtaddr;
env_opts.env_context = opts->env_context;
env_opts.iova_mode = opts->iova_mode;
@ -765,6 +770,7 @@ usage(void (*app_usage)(void))
printf(" pci addr to whitelist (-B and -W cannot be used at the same time)\n");
printf(" --huge-dir <path> use a specific hugetlbfs mount to reserve memory from\n");
printf(" --iova-mode <pa/va> set IOVA mode ('pa' for IOVA_PA and 'va' for IOVA_VA)\n");
printf(" --base-virtaddr <addr> the base virtual address for DPDK (default: 0x200000000000)\n");
printf(" --num-trace-entries <num> number of trace entries for each core, must be power of 2. (default %d)\n",
SPDK_APP_DEFAULT_NUM_TRACE_ENTRIES);
spdk_log_usage(stdout, "-L");
@ -975,6 +981,15 @@ spdk_app_parse_args(int argc, char **argv, struct spdk_app_opts *opts,
goto out;
}
break;
case BASE_VIRTADDR_OPT_IDX:
tmp = spdk_strtoll(optarg, 0);
if (tmp <= 0) {
SPDK_ERRLOG("Invalid base-virtaddr %s\n", optarg);
usage(app_usage);
goto out;
}
opts->base_virtaddr = (uint64_t)tmp;
break;
case HUGE_DIR_OPT_IDX:
opts->hugedir = optarg;
break;