Commit 6f338d4b authored by Krishna Kanth Reddy's avatar Krishna Kanth Reddy Committed by Tomasz Zawadzki
Browse files

bdev : xNVMe BDEV module implementation



This implementation of xNVMe BDEV module supports the char-device / ioctl-over-uring,
along with the "regular" io_uring, libaio, POSIX aio, emulated aio (via threadpools) etc.

Code changes done :
a. Addition of xNVMe submodule to SPDK
b. Modification of RPC scripts to Create / Delete xNVMe BDEVs
c. Implementation of xNVMe BDEV module

Signed-off-by: default avatarKrishna Kanth Reddy <krish.reddy@samsung.com>
Change-Id: If814ca1c784124df429d283015a6570068b44f87
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11161


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 8f2ca281
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -13,3 +13,6 @@
[submodule "libvfio-user"]
	path = libvfio-user
	url = https://github.com/nutanix/libvfio-user.git
[submodule "xnvme"]
	path = xnvme
	url = https://github.com/OpenMPDK/xNVMe.git
+4 −0
Original line number Diff line number Diff line
@@ -2,6 +2,10 @@

## v22.09: (Upcoming Release)

### bdev

New RPCs `bdev_xnvme_create` and `bdev_xnvme_delete` were added to support the xNVMe bdev.

### sock

Added new `ssl` based socket implementation, the code is located in module/sock/posix.
+3 −0
Original line number Diff line number Diff line
@@ -118,6 +118,9 @@ CONFIG_VFIO_USER_DIR=
CONFIG_PMDK=n
CONFIG_PMDK_DIR=

# Build with xNVMe
CONFIG_XNVME=n

# Enable the dependencies for building the compress vbdev
CONFIG_REDUCE=n

+7 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ DIRS-$(CONFIG_IPSEC_MB) += ipsecbuild
DIRS-$(CONFIG_ISAL) += isalbuild
DIRS-$(CONFIG_VFIO_USER) += vfiouserbuild
DIRS-y += python
DIRS-$(CONFIG_XNVME) += xnvmebuild

.PHONY: all clean $(DIRS-y) include/spdk/config.h mk/config.mk \
	cc_version cxx_version .libs_only_other .ldflags ldflags install \
@@ -67,6 +68,11 @@ VFIOUSERBUILD = vfiouserbuild
LIB += vfiouserbuild
endif

ifeq ($(CONFIG_XNVME),y)
XNVMEBUILD = xnvmebuild
LIB += xnvmebuild
endif

all: mk/cc.mk $(DIRS-y)
clean: $(DIRS-y)
	$(Q)rm -f include/spdk/config.h
@@ -83,7 +89,7 @@ dpdkdeps $(DPDK_DEPS): $(WPDK)
dpdkbuild: $(WPDK) $(DPDK_DEPS)
endif

lib: $(WPDK) $(DPDKBUILD) $(VFIOUSERBUILD)
lib: $(WPDK) $(DPDKBUILD) $(VFIOUSERBUILD) $(XNVMEBUILD)
module: lib
shared_lib: module
app: $(LIB)
+8 −0
Original line number Diff line number Diff line
@@ -56,6 +56,8 @@ function usage() {
	echo " --without-crypto          No path required."
	echo " --with-fio[=DIR]          Build fio_plugin."
	echo " --without-fio             default: /usr/src/fio"
	echo " --with-xnvme              Build xNVMe bdev module."
	echo " --without-xnvme           No path required."
	echo " --with-vhost              Build vhost target. Enabled by default."
	echo " --without-vhost           No path required."
	echo " --with-virtio             Build vhost initiator and virtio-pci bdev modules."
@@ -541,6 +543,12 @@ for i in "$@"; do
		--without-reduce)
			CONFIG[REDUCE]=n
			;;
		--with-xnvme)
			CONFIG[XNVME]=y
			;;
		--without-xnvme)
			CONFIG[XNVME]=n
			;;
		--with-fio) ;&
		--with-fio=*)
			if [[ ${i#*=} != "$i" ]]; then
Loading