Spdk/lib/event
Darek Stojaczyk 1c297d7e30 thread: fix crash on non-contiguous cpu range in cpumask
Limit the thread scheduler to put spdk_threads on
lcores < last_lcore instead of lcores < lcore_count,
which was probably the original intent.

When the cpumask was not a contiguous cpu range, the
thread scheduler failed to schedule any spdk_threads on
the last cores. There was one hardcoded thread created
for each reactor, but the scheduler could squash some
of those into a single reactor. This broke the legacy
lcore-based messages as those expect there to be at least
one spdk_thread per lcore. Any spdk_poller_register()
or spdk_get_io_channel() called from such a legacy
message would fail an assertion, as spdk_get_thread()
returned NULL.

Fixes #743

Change-Id: I81a3f76d9c4788596c697df6ff51b264b99ce10b
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450353
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-04-08 15:04:30 +00:00
..
rpc event: spdk_subsystem_config_json is no longer asynchronous 2019-03-19 15:54:34 +00:00
subsystems nvmf: Use threads instead of events for shutdown handling 2019-04-04 05:54:42 +00:00
app.c event: Use threads for shutdown handling instead of events 2019-04-04 05:54:42 +00:00
json_config.c event: spdk_app_json_config_load no longer requires an event 2019-03-06 08:26:04 +00:00
json_config.h event: spdk_app_json_config_load no longer requires an event 2019-03-06 08:26:04 +00:00
Makefile app: add option to read json configuration files during startup 2019-01-14 04:48:18 +00:00
reactor.c thread: fix crash on non-contiguous cpu range in cpumask 2019-04-08 15:04:30 +00:00
rpc.c thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
subsystem.c event: spdk_subsystem_config_json is no longer asynchronous 2019-03-19 15:54:34 +00:00