From e2d061fb98bd55ad3c9913f901bf530f71d069e2 Mon Sep 17 00:00:00 2001 From: Liu Xiaodong Date: Mon, 8 Mar 2021 09:45:11 -0500 Subject: [PATCH] reactor: update core mode from master core Current update_core_mode is started from the next core of the master core. For futher's new scheduler, starting from master core is required. This change won't impact current schedulers' behavior. Change-Id: Ibffd2c93a4288b5e87945ae523ccba88091c4031 Signed-off-by: Liu Xiaodong Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6757 Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Tomasz Zawadzki --- lib/event/reactor.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/event/reactor.c b/lib/event/reactor.c index b70b56b72..91ee1a1f8 100644 --- a/lib/event/reactor.c +++ b/lib/event/reactor.c @@ -703,7 +703,12 @@ _reactors_scheduler_update_core_mode(void *ctx) struct spdk_reactor *reactor; int rc = 0; - g_scheduler_core_number = spdk_env_get_next_core(g_scheduler_core_number); + if (g_scheduler_core_number == SPDK_ENV_LCORE_ID_ANY) { + g_scheduler_core_number = spdk_env_get_first_core(); + } else { + g_scheduler_core_number = spdk_env_get_next_core(g_scheduler_core_number); + } + if (g_scheduler_core_number == SPDK_ENV_LCORE_ID_ANY) { _reactors_scheduler_fini(); return; @@ -728,7 +733,7 @@ _reactors_scheduler_balance(void *arg1, void *arg2) if (g_reactor_state == SPDK_REACTOR_STATE_RUNNING) { g_scheduler->balance(g_core_infos, g_reactor_count, &g_governor); - g_scheduler_core_number = spdk_env_get_first_core(); + g_scheduler_core_number = SPDK_ENV_LCORE_ID_ANY; _reactors_scheduler_update_core_mode(NULL); } }