Commit b42295db authored by Marcin Spiewak's avatar Marcin Spiewak Committed by Tomasz Zawadzki
Browse files

bdev/pmem: Removed bdev pmem implementation



Removed bdev pmem implementation and makefiles
Removed bdev pmem rpc calls
Updated Python scripts
Updated match files for tests
Updated doc files
pkgdep and doc files will be updated when pmem
dependency is removed from libreduce

Change-Id: Ia1be5046159e04cd933ac13a0d5791e6d28219da
Signed-off-by: default avatarMarcin Spiewak <marcin.spiewak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17070


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 8da5783b
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -126,10 +126,6 @@ CONFIG_VIRTIO=y
CONFIG_VFIO_USER=n
CONFIG_VFIO_USER_DIR=

# Build with PMDK backends
CONFIG_PMDK=n
CONFIG_PMDK_DIR=

# Build with xNVMe
CONFIG_XNVME=n

+0 −26
Original line number Diff line number Diff line
@@ -71,9 +71,6 @@ 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. (Deprecated)
					 example: /usr/share/pmdk"
	echo " --without-pmdk		 No path required."
	echo " --with-vbdev-compress     Build vbdev compression module and dependencies."
	echo " --without-vbdev-compress  No path required."
	echo " --with-dpdk-compressdev   Build accel DPDK compression module and dependencies."
@@ -527,18 +524,6 @@ for i in "$@"; do
		--without-vfio-user)
			CONFIG[VFIO_USER]=n
			;;
		--with-pmdk)
			CONFIG[PMDK]=y
			CONFIG[PMDK_DIR]=""
			;;
		--with-pmdk=*)
			CONFIG[PMDK]=y
			check_dir "$i"
			CONFIG[PMDK_DIR]=$(readlink -f ${i#*=})
			;;
		--without-pmdk)
			CONFIG[PMDK]=n
			;;
		--with-vbdev-compress)
			CONFIG[VBDEV_COMPRESS]=y
			;;
@@ -906,17 +891,6 @@ if [[ "${CONFIG[FC]}" = "y" ]]; then
	fi
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."
		echo "Please install then re-run this script."
		exit 1
	fi
fi

function dpdk_version() {
	# Check DPDK version to determine if mlx5_pci driver is supported
	local dpdk_ver="none"
+0 −4
Original line number Diff line number Diff line
@@ -24,10 +24,6 @@ The tags can be matched with the level 4 headers below.
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()`
+0 −37
Original line number Diff line number Diff line
@@ -533,43 +533,6 @@ Example commands

`rpc.py bdev_passthru_delete pt`

## Pmem {#bdev_config_pmem}

The SPDK pmem bdev driver uses pmemblk pool as the target for block I/O operations. For
details on Pmem memory please refer to PMDK documentation on http://pmem.io website.
First, user needs to configure SPDK to include PMDK support:

`configure --with-pmdk`

To create pmemblk pool for use with SPDK user should use `bdev_pmem_create_pool` RPC command.

Example command

`rpc.py bdev_pmem_create_pool /path/to/pmem_pool 25 4096`

To get information on created pmem pool file user can use `bdev_pmem_get_pool_info` RPC command.

Example command

`rpc.py bdev_pmem_get_pool_info /path/to/pmem_pool`

To remove pmem pool file user can use `bdev_pmem_delete_pool` RPC command.

Example command

`rpc.py bdev_pmem_delete_pool /path/to/pmem_pool`

To create bdev based on pmemblk pool file user should use `bdev_pmem_create` RPC
command.

Example command

`rpc.py bdev_pmem_create /path/to/pmem_pool -n pmem`

To remove a block device representation use the bdev_pmem_delete command.

`rpc.py bdev_pmem_delete pmem`

## RAID {#bdev_ug_raid}

RAID virtual bdev module provides functionality to combine any SPDK bdevs into
+0 −218
Original line number Diff line number Diff line
@@ -5831,224 +5831,6 @@ Example response:
    }
}
~~~
### bdev_pmem_create_pool {#rpc_bdev_pmem_create_pool}

Create a @ref bdev_config_pmem blk pool file. It is equivalent of following `pmempool create` command:

~~~bash
pmempool create -s $((num_blocks * block_size)) blk $block_size $pmem_file
~~~

This method is available only if SPDK was built with PMDK support.

#### Parameters

Name                    | Optional | Type        | Description
----------------------- | -------- | ----------- | -----------
pmem_file               | Required | string      | Path to new pmem file
num_blocks              | Required | number      | Number of blocks
block_size              | Required | number      | Size of each block in bytes

#### Example

Example request:

~~~json
{
  "params": {
    "block_size": 512,
    "num_blocks": 131072,
    "pmem_file": "/tmp/pmem_file"
  },
  "jsonrpc": "2.0",
  "method": "bdev_pmem_create_pool",
  "id": 1
}
~~~

Example response:

~~~json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": true
}
~~~

### bdev_pmem_get_pool_info {#rpc_bdev_pmem_get_pool_info}

Retrieve basic information about PMDK memory pool.

This method is available only if SPDK was built with PMDK support.

#### Parameters

Name                    | Optional | Type        | Description
----------------------- | -------- | ----------- | -----------
pmem_file               | Required | string      | Path to existing pmem file

#### Result

Array of objects describing memory pool:

Name                    | Type        | Description
----------------------- | ----------- | -----------
num_blocks              | number      | Number of blocks
block_size              | number      | Size of each block in bytes

#### Example

Example request:

~~~json
request:
{
  "params": {
    "pmem_file": "/tmp/pmem_file"
  },
  "jsonrpc": "2.0",
  "method": "bdev_pmem_get_pool_info",
  "id": 1
}
~~~

Example response:

~~~json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "block_size": 512,
      "num_blocks": 129728
    }
  ]
}
~~~

### bdev_pmem_delete_pool {#rpc_bdev_pmem_delete_pool}

Delete pmem pool by removing file `pmem_file`. This method will fail if `pmem_file` is not a
valid pmem pool file.

This method is available only if SPDK was built with PMDK support.

#### Parameters

Name                    | Optional | Type        | Description
----------------------- | -------- | ----------- | -----------
pmem_file               | Required | string      | Path to new pmem file

#### Example

Example request:

~~~json
{
  "params": {
    "pmem_file": "/tmp/pmem_file"
  },
  "jsonrpc": "2.0",
  "method": "bdev_pmem_delete_pool",
  "id": 1
}
~~~

Example response:

~~~json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": true
}
~~~

### bdev_pmem_create {#rpc_bdev_pmem_create}

Construct @ref bdev_config_pmem bdev.

This method is available only if SPDK was built with PMDK support.

#### Parameters

Name                    | Optional | Type        | Description
----------------------- | -------- | ----------- | -----------
name                    | Required | string      | Bdev name
pmem_file               | Required | string      | Path to existing pmem blk pool file

#### Result

Name of newly created bdev.

#### Example

Example request:

~~~json
{
  "params": {
    "pmem_file": "/tmp/pmem_file",
    "name": "Pmem0"
  },
  "jsonrpc": "2.0",
  "method": "bdev_pmem_create",
  "id": 1
}
~~~

Example response:

~~~json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Pmem0"
}
~~~

### bdev_pmem_delete {#rpc_bdev_pmem_delete}

Delete @ref bdev_config_pmem bdev. This call will not remove backing pool files.

This method is available only if SPDK was built with PMDK support.

#### Result

`true` if bdev with provided name was deleted or `false` otherwise.

#### Parameters

Name                    | Optional | Type        | Description
----------------------- | -------- | ----------- | -----------
name                    | Required | string      | Bdev name

#### Example

Example request:

~~~json
{
  "params": {
    "name": "Pmem0"
  },
  "jsonrpc": "2.0",
  "method": "bdev_pmem_delete",
  "id": 1
}
~~~

Example response:

~~~json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": true
}
~~~

### bdev_passthru_create {#rpc_bdev_passthru_create}

Loading