Spdk/test
Konrad Sztyber 943088499b sma: add volume cleanup thread
Since SMA keeps track of attached volumes and a volume might get
disconnected at any time (in which case they're also removed from the
host side), a mechanism is needed to monitor if any of the volumes are
no longer accessible.

This patch implements that mechanism by adding a new thread running in
the background that will periodically (60s by default) send a
bdev_get_bdevs RPC and check that all previously attached volumes are
available.  If any of them are not, it'll remove it and stop the
associated discovery services (if their refcount goes down to zero).
The period can be changed through the `volume_cleanup_period` variable
in the config file.

One important thing to note is that we assume that any intermittent
connection issues are handled internally by the SPDK application and a
bdev is only removed after all reconnection attempts are performed.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I5b9e63698879527d9f79156a0eda1c8bc5e66def
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12699
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-05-20 09:16:54 +00:00
..
accel_engine test/accel_engine: add more test cases 2021-09-01 07:34:02 +00:00
app test/llvm_nvme_fuzz: add SET FEATURES and GET FEATURES command test cases 2022-05-18 07:29:16 +00:00
bdev test/bdevio: fix bytes vs blocks => early return of test 2022-05-03 16:09:25 +00:00
blobfs test/blobfs: update rocksdb version 2021-12-14 13:23:30 +00:00
blobstore blob: blobcli should use hex for blob IDs 2022-02-01 20:05:13 +00:00
common test/sma: add discovery test 2022-05-20 09:16:54 +00:00
compress reduce: increase REDUCE_MAX_IOVECS to 33 2022-05-13 07:28:58 +00:00
cpp_headers queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
dd test/dd: Simple tests utilizing uring RPCs 2021-12-20 08:46:13 +00:00
dma test/dma: Add memzero implementation 2022-05-16 10:14:26 +00:00
dpdk_memory_utility check_format: Ignore shellcheck's SC2128 and SC2178 directives 2021-06-30 22:43:05 +00:00
env env/memory: fix unregistration of memory after memory registration issue 2022-03-09 09:06:30 +00:00
event scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
external_code bdev_malloc and bdev_null : remove support for deprecated RPC names 2022-05-19 13:07:41 +00:00
ftl autotest: Skip use of any zoned nvme devices 2021-12-06 08:34:46 +00:00
fuzz nvme_fuzz: pass trid on command line only 2021-09-27 10:55:34 +00:00
interrupt scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
ioat build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
iscsi_tgt hello_sock: Add cli params to enable/disable zcopy 2022-05-04 08:03:39 +00:00
json_config bdev_malloc and bdev_null : remove support for deprecated RPC names 2022-05-19 13:07:41 +00:00
lvol bdev_malloc and bdev_null : remove support for deprecated RPC names 2022-05-19 13:07:41 +00:00
make so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
nvme test/nvme_perf: wait longer for discovering bdevs 2022-05-19 08:24:09 +00:00
nvmf bdev/nvme: add timeout option to start_discovery 2022-05-18 07:24:06 +00:00
ocf bdev: remove support for deprecated RPC names 2022-05-09 23:03:02 +00:00
openstack test/openstack: restart whole devstack before tests 2021-12-23 08:36:21 +00:00
pmem spelling: test 2021-12-03 08:13:22 +00:00
rpc scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
rpc_client build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
rpc_plugins autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
scheduler test/scheduler: Don't fail if cgroups don't exist in move_cgroup_procs() 2022-03-09 08:02:55 +00:00
setup scripts/setup: Skip devices which have any valid data present 2022-04-06 07:21:17 +00:00
sma sma: add volume cleanup thread 2022-05-20 09:16:54 +00:00
spdkcli test/nvmf: Remove support for soft-RoCE setups 2022-03-22 16:01:54 +00:00
thread test/thread: Add poller_perf to evaluate cost to run poller 2021-08-20 07:29:42 +00:00
unit nvme: Do Controller Level Reset when disconnecting adminq for PCIe 2022-05-19 08:23:57 +00:00
vfio_user test/vfio_user: Remove subsystem listener while VM is connected, issue #2246 autotest. 2022-02-18 00:00:22 +00:00
vhost test/vhost: Fix vhost migration tc1 test 2022-04-15 08:24:59 +00:00
vmd test: replace VMD_WHITELIST with VMD_ALLOWED 2020-12-03 09:41:07 +00:00
Makefile test/dma: Add functional test to verify DMA 2021-09-24 07:37:45 +00:00
spdk_cunit.h test: remove leftover spdk_cunit declaration 2018-07-06 22:47:56 +00:00