From bfd55056b0b927e2112e92c9b3b0952f0c25cd7b Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Tue, 14 Nov 2017 13:51:39 -0700 Subject: [PATCH] nvmf_tgt: Remove AcceptorCore config parameter Historically, polling for new connections was costly. Now, it's very inexpensive and there isn't a reason to change which core it occurs on. Simplify initialization and configuration by removing it. Change-Id: I1cc4c321bb5986289bd48860cb270b0b552e3baa Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/387681 Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu Reviewed-by: Daniel Verkamp --- app/nvmf_tgt/conf.c | 9 +-------- app/nvmf_tgt/nvmf_tgt.c | 12 ++---------- app/nvmf_tgt/nvmf_tgt.h | 1 - etc/spdk/nvmf.conf.in | 3 --- 4 files changed, 3 insertions(+), 22 deletions(-) diff --git a/app/nvmf_tgt/conf.c b/app/nvmf_tgt/conf.c index a64516e38..9201568a0 100644 --- a/app/nvmf_tgt/conf.c +++ b/app/nvmf_tgt/conf.c @@ -118,7 +118,7 @@ spdk_add_nvmf_discovery_subsystem(void) struct nvmf_tgt_subsystem *app_subsys; app_subsys = nvmf_tgt_create_subsystem(SPDK_NVMF_DISCOVERY_NQN, SPDK_NVMF_SUBTYPE_DISCOVERY, 0, - g_spdk_nvmf_tgt_conf.acceptor_lcore); + spdk_env_get_current_core()); if (app_subsys == NULL) { SPDK_ERRLOG("Failed creating discovery nvmf library subsystem\n"); return -1; @@ -138,7 +138,6 @@ spdk_nvmf_read_config_file_params(struct spdk_conf_section *sp, int max_queues_per_sess; int in_capsule_data_size; int max_io_size; - int acceptor_lcore; int acceptor_poll_rate; max_queue_depth = spdk_conf_section_get_intval(sp, "MaxQueueDepth"); @@ -161,11 +160,6 @@ spdk_nvmf_read_config_file_params(struct spdk_conf_section *sp, opts->max_io_size = max_io_size; } - acceptor_lcore = spdk_conf_section_get_intval(sp, "AcceptorCore"); - if (acceptor_lcore >= 0) { - g_spdk_nvmf_tgt_conf.acceptor_lcore = acceptor_lcore; - } - acceptor_poll_rate = spdk_conf_section_get_intval(sp, "AcceptorPollRate"); if (acceptor_poll_rate >= 0) { g_spdk_nvmf_tgt_conf.acceptor_poll_rate = acceptor_poll_rate; @@ -180,7 +174,6 @@ spdk_nvmf_parse_nvmf_tgt(void) int rc; 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; sp = spdk_conf_find_section(NULL, "Nvmf"); diff --git a/app/nvmf_tgt/nvmf_tgt.c b/app/nvmf_tgt/nvmf_tgt.c index 67cbf0b5b..b727f6b67 100644 --- a/app/nvmf_tgt/nvmf_tgt.c +++ b/app/nvmf_tgt/nvmf_tgt.c @@ -332,13 +332,6 @@ nvmf_tgt_advance_state(void *arg1, void *arg2) rc = -EINVAL; break; } - - if (((1ULL << g_spdk_nvmf_tgt_conf.acceptor_lcore) & spdk_app_get_core_mask()) == 0) { - SPDK_ERRLOG("Invalid AcceptorCore setting\n"); - g_tgt.state = NVMF_TGT_ERROR; - rc = -EINVAL; - break; - } g_tgt.state = NVMF_TGT_INIT_CREATE_POLL_GROUP; break; case NVMF_TGT_INIT_CREATE_POLL_GROUP: { @@ -363,10 +356,9 @@ nvmf_tgt_advance_state(void *arg1, void *arg2) } case NVMF_TGT_INIT_START_ACCEPTOR: spdk_poller_register(&g_acceptor_poller, acceptor_poll, g_tgt.tgt, - g_spdk_nvmf_tgt_conf.acceptor_lcore, + spdk_env_get_current_core(), g_spdk_nvmf_tgt_conf.acceptor_poll_rate); - SPDK_NOTICELOG("Acceptor running on core %u on socket %u\n", g_spdk_nvmf_tgt_conf.acceptor_lcore, - spdk_env_get_socket_id(g_spdk_nvmf_tgt_conf.acceptor_lcore)); + SPDK_NOTICELOG("Acceptor running\n"); g_tgt.state = NVMF_TGT_RUNNING; break; case NVMF_TGT_RUNNING: diff --git a/app/nvmf_tgt/nvmf_tgt.h b/app/nvmf_tgt/nvmf_tgt.h index 34bd33a47..6ca6196ea 100644 --- a/app/nvmf_tgt/nvmf_tgt.h +++ b/app/nvmf_tgt/nvmf_tgt.h @@ -48,7 +48,6 @@ struct rpc_listen_address { }; struct spdk_nvmf_tgt_conf { - uint32_t acceptor_lcore; uint32_t acceptor_poll_rate; }; diff --git a/etc/spdk/nvmf.conf.in b/etc/spdk/nvmf.conf.in index 2f0b9c959..1b2068b0e 100644 --- a/etc/spdk/nvmf.conf.in +++ b/etc/spdk/nvmf.conf.in @@ -59,9 +59,6 @@ # Set the maximum I/O size. Must be a multiple of 4096. #MaxIOSize 131072 - # Set the global acceptor lcore ID, lcores are numbered starting at 0. - #AcceptorCore 0 - # Set how often the acceptor polls for incoming connections. The acceptor is also # responsible for polling existing connections that have gone idle. 0 means continuously # poll. Units in microseconds.