From 93cb4a311a4af3439d1b681a3b746820d3b44835 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Mon, 2 Apr 2018 09:47:59 +0900 Subject: [PATCH] event/app: Refactor initialization of app environment in spdk_app_start() Refactor spdk_app_start() in lib/event/app.c to support JSON config file. Change-Id: Iedcbdeef5cc48c9aab4137735c1eae8daeb63950 Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.gerrithub.io/405363 Reviewed-by: Jim Harris Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker --- lib/event/app.c | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/lib/event/app.c b/lib/event/app.c index a3e7664a5..73da3dead 100644 --- a/lib/event/app.c +++ b/lib/event/app.c @@ -332,6 +332,30 @@ spdk_app_read_config_file_global_params(struct spdk_app_opts *opts) } } +static int +spdk_app_setup_env(struct spdk_app_opts *opts) +{ + struct spdk_env_opts env_opts = {}; + int rc; + + spdk_env_opts_init(&env_opts); + + env_opts.name = opts->name; + env_opts.core_mask = opts->reactor_mask; + env_opts.shm_id = opts->shm_id; + env_opts.mem_channel = opts->mem_channel; + env_opts.master_core = opts->master_core; + env_opts.mem_size = opts->mem_size; + env_opts.no_pci = opts->no_pci; + + rc = spdk_env_init(&env_opts); + if (rc < 0) { + SPDK_ERRLOG("Unable to initialize SPDK env\n"); + } + + return rc; +} + int spdk_app_start(struct spdk_app_opts *opts, spdk_event_fn start_fn, void *arg1, void *arg2) @@ -341,7 +365,6 @@ spdk_app_start(struct spdk_app_opts *opts, spdk_event_fn start_fn, int rc; uint64_t tpoint_group_mask; char *end; - struct spdk_env_opts env_opts = {}; struct spdk_event *app_start_event; if (!opts) { @@ -380,19 +403,7 @@ spdk_app_start(struct spdk_app_opts *opts, spdk_event_fn start_fn, spdk_log_set_level(SPDK_APP_DEFAULT_LOG_PRIORITY); spdk_log_open(); - spdk_env_opts_init(&env_opts); - - env_opts.name = opts->name; - env_opts.core_mask = opts->reactor_mask; - env_opts.shm_id = opts->shm_id; - env_opts.mem_channel = opts->mem_channel; - env_opts.master_core = opts->master_core; - env_opts.mem_size = opts->mem_size; - env_opts.no_pci = opts->no_pci; - env_opts.hugepage_single_segments = opts->hugepage_single_segments; - - if (spdk_env_init(&env_opts) < 0) { - SPDK_ERRLOG("Unable to initialize SPDK env\n"); + if (spdk_app_setup_env(opts) < 0) { goto app_start_log_close_err; }