Commit 23196506 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki
Browse files

deprecation: Remove support for PMDK

parent 9eaf49b2
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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 <libpmemblk.h>\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 <libpmem.h>\nint main(void) { return 0; }\n' \
		| "${BUILD_CMD[@]}" -lpmem - 2> /dev/null; then
		echo "--with-vbdev-compress requires libpmem."
+19 −0
Original line number Diff line number Diff line
@@ -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.
+4 −0
Original line number Diff line number Diff line
@@ -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");
+5 −0
Original line number Diff line number Diff line
@@ -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.
	 */
+3 −0
Original line number Diff line number Diff line
@@ -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);