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 <xiaodong.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6757
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Liu Xiaodong 2021-03-08 09:45:11 -05:00 committed by Tomasz Zawadzki
parent b2ff542576
commit e2d061fb98

View File

@ -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);
}
}