numam-spdk/lib/event
Tomasz Zawadzki 127fc0d0c3 scheduler_dynamic: consider any core for the thread
Previously core load was only considered for main lcore.
Other cores were used based on cpumask only.

Once an active thread was placed on core it remained there
until idle. If _get_next_target_core() looped around,
the core might receive another active thread.

This patch makes the core load matter for placement of any thread.
As of this patch if no core can fit a thread it will remain there.
Later in the series least busy core will be used to balance
threads when every core is already busy.

Modified the functional test that depended on always selecting
consecutive core, even if 'current' one fit the bill.
Later in the series the round robin logic for core selection
is removed all together.

Fixed typo in test while here.

Note: _can_core_fit_thread() intentionally does not check
core->interrupt_mode and uses tsc. That flag is only updated
at the end of balancing right now. Meanwhile tsc is updated
one first thread moved to the core, so it is no longer
considered in interrupt mode.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I95f58c94e3f5ae8a468723d1dd6e53b0e417dcc3
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8069
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2021-06-28 16:18:19 +00:00
..
app_rpc.c thread: Make the definition of struct spdk_io_channel private 2021-06-25 05:01:45 +00:00
app.c event: Move json config loading to init 2021-05-26 09:13:34 +00:00
dpdk_governor.c dpdk_governor: refactor _get_core_curr_freqs 2021-04-22 15:40:30 +00:00
gscheduler.c lib/event: rename core_busy/idle_tsc to total_busy/idle_tsc 2021-06-14 08:44:39 +00:00
log_rpc.c log_rpc: Unify codes in end path. 2021-05-05 13:26:06 +00:00
Makefile event: Move json config loading to init 2021-05-26 09:13:34 +00:00
reactor.c lib/event: calculate reactor tsc from last scheduling period 2021-06-14 08:44:39 +00:00
scheduler_dynamic.c scheduler_dynamic: consider any core for the thread 2021-06-28 16:18:19 +00:00
scheduler_static.c event: Fix SPDK_SCHEDULER_REGISTER macro 2021-01-15 08:28:30 +00:00
spdk_event.map event: Move json config loading to init 2021-05-26 09:13:34 +00:00