The NVMe bdev module will support two features, delayed reconnect and delete after multiple failures of reconnect to improve error recovery. The recently added two APIs, spdk_nvme_ctrlr_reset_async() and spdk_nvme_ctrlr_reset_poll_async(), were not good enough. spdk_nvme_ctrlr_reset_ctx was not necessary. It had only a pointer to ctrlr. Using a pointer to ctrlr directly saves us from undesirable malloc error processing. Separate spdk_nvme_ctrlr_reset_async() into spdk_nvme_ctrlr_disconnect() and spdk_nvme_ctrlr_reconnect_async(). spdk_nvme_ctrlr_disconnect() disconnects ctrlr including disconnecting adminq. spdk_nvme_ctrlr_reconnect_async() moves the ctrlr state to INIT. Then rename spdk_nvme_ctrlr_reset_poll_async() by spdk_nvme_ctrlr_reconnect_poll_async(). Finally deprecate spdk_nvme_ctrlr_reset_async() and spdk_nvme_ctrlr_reset_poll_async(). The following patches will change the NVMe bdev module to use these new APIs. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Id1d6858dcdc5fc2e9db0a6ebf3f79cab4f9bbcb7 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10091 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
1.1 KiB
Deprecation
ABI and API Deprecation
This document details the policy for maintaining stability of SPDK ABI and API.
Major ABI version can change at most once for each quarterly SPDK release. ABI versions are managed separately for each library and follow Semantic Versioning.
API and ABI deprecation notices shall be posted in the next section. Each entry must describe what will be removed and can suggest the future use or alternative. Specific future SPDK release for the removal must be provided. ABI cannot be removed without providing deprecation notice for at least single SPDK release.
Deprecation Notices
bdev
Deprecated spdk_bdev_module_finish_done()
API, which will be removed in SPDK 22.01.
Bdev modules should use spdk_bdev_module_fini_done()
instead.
nvme
Deprecated spdk_nvme_ctrlr_reset_async
and spdk_nvme_ctrlr_reset_poll_async
APIs,
which will be removed in SPDK 22.01. spdk_nvme_ctrlr_disconnect
, spdk_nvme_ctrlr_reconnect_async
,
and spdk_nvme_ctrlr_reconnect_poll_async
should be used instead.