From df7cf893940a500e70b65d875d8bce704da5ec2f Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Wed, 25 Oct 2017 20:32:58 -0700 Subject: [PATCH] iscsi, vhost, nvmf: allow running without config file If the default config file does not exist, keep the app's config_file options field as NULL, so that the app code will not fail when trying to open a non-existent file. Also leverage the recent iSCSI and NVMe-oF refactoring, to just skip trying to read config file parameters if no config file exists (or the requisite section in the config file is not present). vhost already handled this so it did not need to be modified. Signed-off-by: Jim Harris Change-Id: Ic32f0a7a8ce85322a8effd537b62d14732d7b82e Reviewed-on: https://review.gerrithub.io/385497 Reviewed-by: Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp --- app/iscsi_tgt/iscsi_tgt.c | 4 +++- app/nvmf_tgt/conf.c | 12 +++++------- app/nvmf_tgt/nvmf_main.c | 4 +++- app/vhost/vhost.c | 4 +++- lib/iscsi/iscsi_subsystem.c | 7 ++----- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/iscsi_tgt/iscsi_tgt.c b/app/iscsi_tgt/iscsi_tgt.c index 144d64254..67cf7f898 100644 --- a/app/iscsi_tgt/iscsi_tgt.c +++ b/app/iscsi_tgt/iscsi_tgt.c @@ -98,7 +98,9 @@ main(int argc, char **argv) /* default value in opts structure */ spdk_app_opts_init(&opts); - opts.config_file = SPDK_ISCSI_DEFAULT_CONFIG; + if (access(SPDK_ISCSI_DEFAULT_CONFIG, F_OK) == 0) { + opts.config_file = SPDK_ISCSI_DEFAULT_CONFIG; + } opts.name = "iscsi"; while ((ch = getopt(argc, argv, "bc:de:i:m:n:p:qs:t:H")) != -1) { diff --git a/app/nvmf_tgt/conf.c b/app/nvmf_tgt/conf.c index eb2300bed..15df90aae 100644 --- a/app/nvmf_tgt/conf.c +++ b/app/nvmf_tgt/conf.c @@ -179,16 +179,14 @@ spdk_nvmf_parse_nvmf_tgt(void) struct spdk_nvmf_tgt_opts opts; int rc; - sp = spdk_conf_find_section(NULL, "Nvmf"); - if (sp == NULL) { - SPDK_ERRLOG("No Nvmf section in configuration file.\n"); - return -1; - } - spdk_nvmf_tgt_opts_init(&opts); g_spdk_nvmf_tgt_conf.acceptor_lcore = spdk_env_get_current_core(); g_spdk_nvmf_tgt_conf.acceptor_poll_rate = ACCEPT_TIMEOUT_US; - spdk_nvmf_read_config_file_params(sp, &opts); + + sp = spdk_conf_find_section(NULL, "Nvmf"); + if (sp != NULL) { + spdk_nvmf_read_config_file_params(sp, &opts); + } g_tgt = spdk_nvmf_tgt_create(&opts); if (!g_tgt) { diff --git a/app/nvmf_tgt/nvmf_main.c b/app/nvmf_tgt/nvmf_main.c index 0ea716b3a..09418bc7b 100644 --- a/app/nvmf_tgt/nvmf_main.c +++ b/app/nvmf_tgt/nvmf_main.c @@ -77,7 +77,9 @@ main(int argc, char **argv) /* default value in opts */ spdk_app_opts_init(&opts); opts.name = "nvmf"; - opts.config_file = SPDK_NVMF_DEFAULT_CONFIG; + if (access(SPDK_NVMF_DEFAULT_CONFIG, F_OK) == 0) { + opts.config_file = SPDK_NVMF_DEFAULT_CONFIG; + } opts.max_delay_us = 1000; /* 1 ms */ while ((ch = getopt(argc, argv, "c:de:i:m:n:p:qs:t:DH")) != -1) { diff --git a/app/vhost/vhost.c b/app/vhost/vhost.c index 0e591813c..9253d871f 100644 --- a/app/vhost/vhost.c +++ b/app/vhost/vhost.c @@ -49,7 +49,9 @@ vhost_app_opts_init(struct spdk_app_opts *opts) { spdk_app_opts_init(opts); opts->name = "vhost"; - opts->config_file = SPDK_VHOST_DEFAULT_CONFIG; + if (access(SPDK_VHOST_DEFAULT_CONFIG, F_OK) == 0) { + opts->config_file = SPDK_VHOST_DEFAULT_CONFIG; + } opts->mem_size = SPDK_VHOST_DEFAULT_MEM_SIZE; } diff --git a/lib/iscsi/iscsi_subsystem.c b/lib/iscsi/iscsi_subsystem.c index 8c3013d38..1f1aadebb 100644 --- a/lib/iscsi/iscsi_subsystem.c +++ b/lib/iscsi/iscsi_subsystem.c @@ -782,13 +782,10 @@ spdk_iscsi_app_read_parameters(void) /* Process parameters */ SPDK_DEBUGLOG(SPDK_TRACE_ISCSI, "spdk_iscsi_app_read_parameters\n"); sp = spdk_conf_find_section(NULL, "iSCSI"); - if (sp == NULL) { - SPDK_ERRLOG("iSCSI config section not found.\n"); - return -1; + if (sp != NULL) { + spdk_iscsi_read_parameters_from_config_file(sp); } - spdk_iscsi_read_parameters_from_config_file(sp); - g_spdk_iscsi.session = spdk_dma_zmalloc(sizeof(void *) * g_spdk_iscsi.MaxSessions, 0, NULL); if (!g_spdk_iscsi.session) { perror("Unable to allocate session pointer array\n");