There is only one g_scheduling_reactor (main core), the is_scheduling flag for it is used to block starting new gather_metrics before previous one is finished. Meanwhile is_scheduling flag on other reactors was used to block destroying lw_threads while scheduling happens. It was only needed because scheduler interacted with the same lw_thread pointers as each reactor. Previous patch removed this dependency, instead spdk_thread ids is used. If an spdk_thread is destroyed, while scheduling _threads_reschedule_thread() handles it. It is no longer required to block destruction of lw_threads based on this flag. Instead of using the main core reactor flag, a g_scheduling_in_progress is introduced. Removed _spdk_get_scheduling_reactor() and instead shared the value of g_scheduling_in_progress between reactor.c and app.c. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ica57326a552477add522174cc3e96b3bab918350 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8732 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> |
||
---|---|---|
.. | ||
include | ||
lib | ||
Makefile | ||
unittest.sh |