From 7cc83b6258f23e3650b0412bb9b13ba364c8a77c Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Fri, 29 Jan 2021 14:14:38 -0500 Subject: [PATCH] Revert "lib/event: do not spawn a thread for each reactor" This reverts commit 72eed604b407e8cb53ce41e97d573b801c6ea50e. spdk_vhost_init() relies on having a thread on each reactor. Without the revert, every vhost controller is created on the same core and even passing --cpumask when creating does not affect it. Proper fix would be to change spdk_vhost_init(), but would require additional testing. For now revert the patch that spawned always idle threads. Signed-off-by: Tomasz Zawadzki Change-Id: I0dbd6c9fe1d9d23ada260da8fc7b48086223c632 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6186 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu Community-CI: Mellanox Build Bot --- lib/event/reactor.c | 10 ++++++++++ .../match_files/spdkcli_details_vhost_ctrl.test.match | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/event/reactor.c b/lib/event/reactor.c index 3396b7db1..724371c6a 100644 --- a/lib/event/reactor.c +++ b/lib/event/reactor.c @@ -1010,8 +1010,10 @@ void spdk_reactors_start(void) { struct spdk_reactor *reactor; + struct spdk_cpuset tmp_cpumask = {}; uint32_t i, current_core; int rc; + char thread_name[32]; g_rusage_period = (CONTEXT_SWITCH_MONITOR_PERIOD * spdk_get_ticks_hz()) / SPDK_SEC_TO_USEC; g_reactor_state = SPDK_REACTOR_STATE_RUNNING; @@ -1030,6 +1032,14 @@ spdk_reactors_start(void) assert(false); return; } + + /* For now, for each reactor spawn one thread. */ + snprintf(thread_name, sizeof(thread_name), "reactor_%u", reactor->lcore); + + spdk_cpuset_zero(&tmp_cpumask); + spdk_cpuset_set_cpu(&tmp_cpumask, i, true); + + spdk_thread_create(thread_name, &tmp_cpumask); } spdk_cpuset_set_cpu(&g_reactor_core_mask, i, true); } diff --git a/test/spdkcli/match_files/spdkcli_details_vhost_ctrl.test.match b/test/spdkcli/match_files/spdkcli_details_vhost_ctrl.test.match index b545dd7cb..7e045fb7d 100644 --- a/test/spdkcli/match_files/spdkcli_details_vhost_ctrl.test.match +++ b/test/spdkcli/match_files/spdkcli_details_vhost_ctrl.test.match @@ -14,7 +14,7 @@ } ] }, - "cpumask": "$(S)", + "cpumask": "0x3", "ctrlr": "vhost_scsi1", "delay_base_us": 20, "iops_threshold": 1000000,