2021-08-02 12:27:54 +00:00
|
|
|
# Deprecation
|
|
|
|
|
|
|
|
## ABI and API Deprecation {#deprecation}
|
2021-02-26 12:33:12 +00:00
|
|
|
|
|
|
|
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.
|
2021-11-25 01:40:57 +00:00
|
|
|
ABI versions are managed separately for each library and follow [Semantic Versioning](https://semver.org/).
|
2021-02-26 12:33:12 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2022-11-29 17:02:14 +00:00
|
|
|
Deprecated code paths must be registered with `SPDK_DEPRECATION_REGISTER()` and logged with
|
|
|
|
`SPDK_LOG_DEPRECATED()`. The tag used with these macros will appear in the SPDK
|
|
|
|
log at the warn level when `SPDK_LOG_DEPRECATED()` is called, subject to rate limits.
|
|
|
|
The tags can be matched with the level 4 headers below.
|
|
|
|
|
2021-08-02 12:27:54 +00:00
|
|
|
## Deprecation Notices {#deprecation-notices}
|
2022-05-18 07:21:05 +00:00
|
|
|
|
2023-01-20 12:55:51 +00:00
|
|
|
### PMDK
|
|
|
|
|
|
|
|
PMDK is no longer supported and integrations with it in SPDK are now deprecated, and will be removed in SPDK 23.05.
|
|
|
|
Please see: [UPDATE ON PMDK AND OUR LONG TERM SUPPORT STRATEGY](https://pmem.io/blog/2022/11/update-on-pmdk-and-our-long-term-support-strategy/).
|
|
|
|
|
|
|
|
#### `bdev_pmem`
|
|
|
|
|
|
|
|
Deprecated `bdev_pmem` based on libpmemblk, it will be removed in SPDK 23.05.
|
|
|
|
|
|
|
|
#### `libreduce_pm_file`
|
|
|
|
|
|
|
|
Reduce library will no longer depend on libpmem. `pm_file_dir` parameter in `spdk_reduce_vol_init()`
|
|
|
|
will no longer point to pmem device or pmem file. Instead it will be possible to operate on a file,
|
|
|
|
without the benefits of persistency.
|
|
|
|
|
2023-01-20 12:46:49 +00:00
|
|
|
### VTune
|
|
|
|
|
2023-01-25 15:18:11 +00:00
|
|
|
#### `vtune_support`
|
|
|
|
|
2023-01-20 12:46:49 +00:00
|
|
|
VTune integration is in now deprecated and will be removed in SPDK 23.05.
|
|
|
|
|
2023-01-20 12:54:25 +00:00
|
|
|
### OCF
|
|
|
|
|
|
|
|
#### `bdev_ocf`
|
|
|
|
|
|
|
|
The Open CAS Framework (OCF) integration via bdev module and env_ocf is now deprecated
|
|
|
|
and will be removed in SPDK 23.05.
|
|
|
|
|
2022-05-18 07:21:05 +00:00
|
|
|
### nvme
|
|
|
|
|
2022-11-29 18:58:22 +00:00
|
|
|
#### `nvme_ctrlr_prepare_for_reset`
|
2022-12-02 05:20:01 +00:00
|
|
|
|
2022-05-18 07:21:05 +00:00
|
|
|
Deprecated `spdk_nvme_ctrlr_prepare_for_reset` API, which will be removed in SPDK 22.01.
|
|
|
|
For PCIe transport, `spdk_nvme_ctrlr_disconnect` should be used before freeing I/O qpairs.
|
2022-11-29 18:58:22 +00:00
|
|
|
|
2023-01-13 23:13:35 +00:00
|
|
|
### gpt
|
|
|
|
|
2023-01-25 15:18:11 +00:00
|
|
|
#### `old_gpt_guid`
|
2023-01-13 23:13:35 +00:00
|
|
|
|
|
|
|
Deprecated the SPDK partition type GUID `7c5222bd-8f5d-4087-9c00-bf9843c7b58c`. Partitions of this
|
|
|
|
type have bdevs created that are one block less than the actual size of the partition. Existing
|
|
|
|
partitions using the deprecated GUID can continue to use that GUID; support for the deprecated GUID
|
|
|
|
will remain in SPDK indefinitely, and will continue to exhibit the off-by-one bug so that on-disk
|
|
|
|
metadata layouts based on the incorrect size are not affected.
|
|
|
|
|
|
|
|
See GitHub issue [2801](https://github.com/spdk/spdk/issues/2801) for additional details on the bug.
|
|
|
|
|
|
|
|
New SPDK partition types should use GUID `6527994e-2c5a-4eec-9613-8f5944074e8b` which will create
|
|
|
|
a bdev of the correct size.
|
2023-02-21 13:17:57 +00:00
|
|
|
|
|
|
|
### lvol
|
|
|
|
|
|
|
|
#### `vbdev_lvol_rpc_req_size`
|
|
|
|
|
|
|
|
Param `size` in rpc commands `rpc_bdev_lvol_create` and `rpc_bdev_lvol_resize` is deprecated and
|
|
|
|
replace by `size_in_mib`.
|
|
|
|
|
|
|
|
See GitHub issue [2346](https://github.com/spdk/spdk/issues/2346) for additional details.
|