diff --git a/configure b/configure index 9ae9ed61c..a07190114 100755 --- a/configure +++ b/configure @@ -71,7 +71,7 @@ function usage() { echo " vfio-user initiator is always built-in in Linux." echo " example: /usr/src/libvfio-user" echo " --without-vfio-user No path required." - echo " --with-pmdk[=DIR] Build persistent memory bdev. + echo " --with-pmdk[=DIR] Build persistent memory bdev. (Deprecated) example: /usr/share/pmdk" echo " --without-pmdk No path required." echo " --with-vbdev-compress Build vbdev compression module and dependencies." @@ -907,6 +907,8 @@ if [[ "${CONFIG[FC]}" = "y" ]]; then fi if [[ "${CONFIG[PMDK]}" = "y" ]]; then + echo "WARNING: PMDK - bdev_pmem is deprecated." + echo "WARNING: PMDK - ACCEL_FLAG_PERSISTENT in accel_sw module is deprecated." if ! echo -e '#include \nint main(void) { return 0; }\n' \ | "${BUILD_CMD[@]}" -lpmemblk - 2> /dev/null; then echo "--with-pmdk requires libpmemblk." @@ -941,6 +943,7 @@ function mlx5_build() { } if [[ "${CONFIG[VBDEV_COMPRESS]}" = "y" ]]; then + echo "WARNING: PMDK - Persistent device support with bdev_compress is deprecated." if ! echo -e '#include \nint main(void) { return 0; }\n' \ | "${BUILD_CMD[@]}" -lpmem - 2> /dev/null; then echo "--with-vbdev-compress requires libpmem." diff --git a/deprecation.md b/deprecation.md index ac6eecb99..9f864d2b6 100644 --- a/deprecation.md +++ b/deprecation.md @@ -19,6 +19,25 @@ The tags can be matched with the level 4 headers below. ## Deprecation Notices {#deprecation-notices} +### 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/). + +#### `accel_flag_persistent` + +Deprecated `ACCEL_FLAG_PERSISTENT` flag in `accel_sw` accel framework module, it will be removed in SPDK 23.05. + +#### `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. + ### VTune VTune integration is in now deprecated and will be removed in SPDK 23.05. diff --git a/lib/accel/accel_sw.c b/lib/accel/accel_sw.c index d11ce64b5..8414627d1 100644 --- a/lib/accel/accel_sw.c +++ b/lib/accel/accel_sw.c @@ -66,11 +66,15 @@ _add_to_comp_list(struct sw_accel_io_channel *sw_ch, struct spdk_accel_task *acc TAILQ_INSERT_TAIL(&sw_ch->tasks_to_complete, accel_task, link); } +SPDK_LOG_DEPRECATION_REGISTER(accel_flag_persistent, + "PMDK libpmem accel_sw integration", "SPDK 23.05", 10); + /* Used when the SW engine is selected and the durable flag is set. */ inline static int _check_flags(int flags) { if (flags & ACCEL_FLAG_PERSISTENT) { + SPDK_LOG_DEPRECATED(accel_flag_persistent); #ifndef SPDK_CONFIG_PMDK /* PMDK is required to use this flag. */ SPDK_ERRLOG("ACCEL_FLAG_PERSISTENT set but PMDK not configured. Configure PMDK or do not use this flag.\n"); diff --git a/lib/reduce/reduce.c b/lib/reduce/reduce.c index 25abbc649..9dbf479ab 100644 --- a/lib/reduce/reduce.c +++ b/lib/reduce/reduce.c @@ -537,6 +537,9 @@ _allocate_bit_arrays(struct spdk_reduce_vol *vol) return 0; } +SPDK_LOG_DEPRECATION_REGISTER(libreduce_pm_file, + "PMDK libpmem reduce integration", "SPDK 23.05", 0); + void spdk_reduce_vol_init(struct spdk_reduce_vol_params *params, struct spdk_reduce_backing_dev *backing_dev, @@ -549,6 +552,8 @@ spdk_reduce_vol_init(struct spdk_reduce_vol_params *params, size_t mapped_len; int dir_len, max_dir_len, rc; + SPDK_LOG_DEPRECATED(libreduce_pm_file); + /* We need to append a path separator and the UUID to the supplied * path. */ diff --git a/module/bdev/pmem/bdev_pmem.c b/module/bdev/pmem/bdev_pmem.c index 4b5225aab..6026fb3b2 100644 --- a/module/bdev/pmem/bdev_pmem.c +++ b/module/bdev/pmem/bdev_pmem.c @@ -374,11 +374,14 @@ delete_pmem_disk(const char *name, spdk_delete_pmem_complete cb_fn, void *cb_arg } } +SPDK_LOG_DEPRECATION_REGISTER(bdev_pmem, "PMDK libpmemblk bdev_pmem integration", "SPDK 23.05", 0); + static int bdev_pmem_initialize(void) { const char *err = pmemblk_check_version(PMEMBLK_MAJOR_VERSION, PMEMBLK_MINOR_VERSION); + SPDK_LOG_DEPRECATED(bdev_pmem); if (err != NULL) { SPDK_ERRLOG("Invalid libpmemblk version (expected %d.%d): %s\n", PMEMBLK_MAJOR_VERSION, PMEMBLK_MINOR_VERSION, err);