Spdk/lib
Jim Harris 85d70c03c5 thread: don't move to EXITED if there are pending messages
At end of spdk_thread_poll(), if thread is in EXITING state,
we call thread_exit() to see if the thread can move to
EXITED state.  If there are any pollers, io_channels
or pending device unregistrations in progress, thread_exit()
will keep the thread in EXITING mode for this iteration.

But a thread may post messages to itself during this cleanup
process, so thread_exit() should also check if there are
any messages on its queue.

Found during testing of spdk_thread lifetime patch set.
rbd bdev module will send messages to itself like this
during cleanup.  Without this change, rbd module testing
with bdevperf would cause an spdk_thread to move to
EXITED state prematurely.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ie611026a67b7fa48640ae83be03e29a9c64883a2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15533
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-11-23 08:22:04 +00:00
..
accel lib/accel: set RPC accel_get_opc_assignments as SPDK_RPC_RUNTIME 2022-11-17 08:57:53 +00:00
bdev include/bdev_module.h: add SPDK_ prefix to macros 2022-11-22 10:03:57 +00:00
blob update Intel copyright notices 2022-11-10 08:28:53 +00:00
blobfs update Intel copyright notices 2022-11-10 08:28:53 +00:00
conf update Intel copyright notices 2022-11-10 08:28:53 +00:00
dma update Intel copyright notices 2022-11-10 08:28:53 +00:00
env_dpdk env_dpdk: allow 2211.c file to build against older DPDK 2022-11-15 08:31:28 +00:00
env_ocf update Intel copyright notices 2022-11-10 08:28:53 +00:00
event lib/rpc: add RPC allow list 2022-11-15 08:31:02 +00:00
ftl lib/ftl: Fix segfault in recovery path of unmap 2022-11-22 10:01:30 +00:00
idxd update Intel copyright notices 2022-11-10 08:28:53 +00:00
init rpc: print device type in framework_get_pci_devices 2022-11-21 16:15:44 +00:00
ioat update Intel copyright notices 2022-11-10 08:28:53 +00:00
iscsi iscsi: unregister login_timer when destroying connection 2022-11-23 08:22:04 +00:00
json json: add spdk_json_write_named_double 2022-11-22 10:01:43 +00:00
jsonrpc update Intel copyright notices 2022-11-10 08:28:53 +00:00
log update Intel copyright notices 2022-11-10 08:28:53 +00:00
lvol update Intel copyright notices 2022-11-10 08:28:53 +00:00
nbd update Intel copyright notices 2022-11-10 08:28:53 +00:00
notify update Intel copyright notices 2022-11-10 08:28:53 +00:00
nvme nvme: execute hotplug monitor even if hotplug_fd < 0 2022-11-21 16:15:44 +00:00
nvmf nvmf/vfio-user: add some unlikely on the hot path 2022-11-22 10:01:43 +00:00
rdma update Intel copyright notices 2022-11-10 08:28:53 +00:00
reduce update Intel copyright notices 2022-11-10 08:28:53 +00:00
rocksdb update Intel copyright notices 2022-11-10 08:28:53 +00:00
rpc lib/rpc: add RPC allow list 2022-11-15 08:31:02 +00:00
scsi update Intel copyright notices 2022-11-10 08:28:53 +00:00
sock update Intel copyright notices 2022-11-10 08:28:53 +00:00
thread thread: don't move to EXITED if there are pending messages 2022-11-23 08:22:04 +00:00
trace update Intel copyright notices 2022-11-10 08:28:53 +00:00
trace_parser update Intel copyright notices 2022-11-10 08:28:53 +00:00
ut_mock update Intel copyright notices 2022-11-10 08:28:53 +00:00
util util: add function spdk_fd_group_get_epoll_event 2022-11-22 10:01:43 +00:00
vfio_user update Intel copyright notices 2022-11-10 08:28:53 +00:00
vfu_tgt update Intel copyright notices 2022-11-10 08:28:53 +00:00
vhost include/bdev_module.h: add SPDK_ prefix to macros 2022-11-22 10:03:57 +00:00
virtio update Intel copyright notices 2022-11-10 08:28:53 +00:00
vmd update Intel copyright notices 2022-11-10 08:28:53 +00:00
Makefile update Intel copyright notices 2022-11-10 08:28:53 +00:00