Hi, I am now working with my passthrough bdev directly from my application, and require adding/removing them dynamically. In addition, I also require starting/stopping the reactor on demand without tearing down the entire system (e.g. dpdk stays initialized). This mostly works out of the box, but there are a few globals and bdev internal fields which require re-init or tear down. In addition, the copy engine did not io_unregister itself, so I also added this in the patchset, allowing me the following application life span: - env init (init config, spdk_env_init) - reactors init - while (application is alive) subsystem_init + reactor start ... Do some NVMeF stuff ... subsysem_fini + reactors stop - reactors_fini - rpc_finish I submitted the following patches for review: https://review.gerrithub.io/c/spdk/spdk/+/428305 https://review.gerrithub.io/c/spdk/spdk/+/428304 https://review.gerrithub.io/c/spdk/spdk/+/428303 https://review.gerrithub.io/c/spdk/spdk/+/428302 WDYT? Shahar