Spdk/lib
Shuhei Matsumoto 1e98e82051 lib/thread: Stop new poller and reap unregistering poller after thread is marked as exited
This is a preparation to support voluntary thread termination by
calling spdk_thread_exit().

One of the subsequent patches will allow thread to exit only if
all of its pollers are being unregistered.  After the thread is
marked as exited, only unregistering pollers will remain if the
exited thread does not accept registering new poller.

Hence in this patch, we change spdk_poller_register() to fail if the
current thread is marked as exited first.

Then, in subsequent patches, if we remove break from poller
processing in spdk_thread_poll(), poller unregistration of the exited
thread will complete, and we will be able to support voluntary thread
termination easily by checking only the thread is exited and idle.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I5b843a07049ef01a5ff402eb521e294182ce2ae2
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/822
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
2020-02-13 09:51:15 +00:00
..
bdev Bdev: add the ZCopy operation for IO stats 2020-02-12 12:08:28 +00:00
blob lib/blob: add invalid flag for extent table 2020-01-31 09:28:56 +00:00
blobfs blobfs: write IO directly if it is lba aligned 2020-01-07 12:19:14 +00:00
conf string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
copy lib/copy: move ioat subdir to module directory. 2019-08-22 16:29:49 +00:00
env_dpdk env_dpdk: fix potential null dereference 2020-02-06 09:45:42 +00:00
env_ocf lib/bdev/ocf: update of ocf library to version 19.06 2019-10-22 17:22:41 +00:00
event lib/app: Change signal handler to use spdk_thread_send_critical_msg 2020-01-13 12:42:49 +00:00
ftl lib/ftl: Init/fini context moved from dev structure to init module 2020-02-10 10:40:26 +00:00
ioat lib/ioat: Fix the error message when enabling ioat during application shutdown. 2019-12-30 03:09:01 +00:00
iscsi lib/iscsi: Using async writev for ISCSI_OP_LOGOUT_RSP PDU 2020-01-23 02:29:58 +00:00
json json_util: fix typo in debug message. 2019-05-31 14:39:53 +00:00
jsonrpc json: increase the json rpc client value limit 2019-11-18 13:16:49 +00:00
log lib/log: do not put trailing whitespace in fdump 2020-02-04 20:08:02 +00:00
log_rpc RPC: rename get_log_flags to log_get_flags 2019-09-24 16:42:41 +00:00
lvol lib/blob: store clear_method in per blob metadata 2020-01-20 09:57:16 +00:00
nbd rpc: Rename get_nbd_disks to nbd_get_disks 2019-09-19 20:56:35 +00:00
net net: add the check for the add and delete IP operation 2019-12-09 17:39:50 +00:00
notify RPC: rename get_notifications to notify_get_notifications 2019-09-24 16:42:41 +00:00
nvme nvme: Remove nvme_transport_get_ctrlr_registers 2020-02-12 12:07:16 +00:00
nvmf nvmf: Allow fabrics get/set on ASQ and ACQ 2020-02-12 12:07:04 +00:00
reduce lib/reduce: move _alloc_zero_buf earlier in init stage. 2019-12-19 11:04:57 +00:00
rocksdb RocksDB: Remove static and assert for SpdkInitializeThread 2019-07-05 04:19:11 +00:00
rpc RPC: properly set the address in error cases 2019-12-04 15:11:55 +00:00
rte_vhost vhost: make SPDK internal vhost library can work compatible with live recovery 2020-01-22 13:54:19 +00:00
scsi lib/scsi: Move scsi_task_free_data() in a file to remove function declaration 2019-11-21 08:01:29 +00:00
sock sock/posix: Block recursive calls to spdk_sock_flush 2020-01-30 10:22:20 +00:00
thread lib/thread: Stop new poller and reap unregistering poller after thread is marked as exited 2020-02-13 09:51:15 +00:00
trace lib/trace: Don't initialize traces if requested num entries is 0 2020-02-10 10:23:53 +00:00
ut_mock test: Add mocks for sendmsg and recvmsg 2019-11-01 17:56:16 +00:00
util util/base64: Extend b64 decode to calculate exact len 2020-02-03 11:39:49 +00:00
vhost vhost_blk: need init task when resubmit the blk request 2020-01-24 08:07:13 +00:00
virtio virtio_user: use correct #ifndef for the internal vhost.h header 2020-01-10 08:45:45 +00:00
vmd lib/vmd: detach devices during shutdown 2020-02-04 16:50:25 +00:00
Makefile make: add dependencies for the rte_vhost build. 2019-09-09 22:15:24 +00:00