bdev/nvme: always enable FTL

FTL doesn't have any kind of special package requirements.
It is getting pretty good traction in the community, so
let's enable it by default.

Note that we will disable FTL on FreeBSD.  FTL uses
CIRCLEQ which is not available on FreeBSD.  Let's not
spend time trying to get FTL to work on FreeBSD until
there's a demand to do so.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I15525b6c4e6ee52f49adf74d55f9484fe08a6dcc

Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/452752
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
This commit is contained in:
Jim Harris 2019-04-30 15:57:29 -07:00 committed by Darek Stojaczyk
parent 8df1f6b220
commit af25204404
8 changed files with 5 additions and 28 deletions

3
CONFIG
View File

@ -126,9 +126,6 @@ CONFIG_VTUNE_DIR=
# Build the dpdk igb_uio driver # Build the dpdk igb_uio driver
CONFIG_IGB_UIO_DRIVER=n CONFIG_IGB_UIO_DRIVER=n
# Build FTL library
CONFIG_FTL=n
# Build Intel IPSEC_MB library # Build Intel IPSEC_MB library
CONFIG_IPSEC_MB=n CONFIG_IPSEC_MB=n

8
configure vendored
View File

@ -75,8 +75,6 @@ function usage()
echo " example: /usr/src/ocf/" echo " example: /usr/src/ocf/"
echo " isal Enabled by default on x86 architecture. Can be built without though." echo " isal Enabled by default on x86 architecture. Can be built without though."
echo " No path required." echo " No path required."
echo " ftl Required to build FTL module."
echo " No path required."
echo " uring Required to support I/O uring on Linux. If no argument, searches" echo " uring Required to support I/O uring on Linux. If no argument, searches"
echo " the standard installation directory. If an argument is provided, it is" echo " the standard installation directory. If an argument is provided, it is"
echo " considered a directory containing liburing.a and io_uring.h." echo " considered a directory containing liburing.a and io_uring.h."
@ -293,12 +291,6 @@ for i in "$@"; do
--without-igb-uio-driver) --without-igb-uio-driver)
CONFIG[IGB_UIO_DRIVER]=n CONFIG[IGB_UIO_DRIVER]=n
;; ;;
--with-ftl)
CONFIG[FTL]=y
;;
--without-ftl)
CONFIG[FTL]=n
;;
--with-ocf) --with-ocf)
CONFIG[OCF]=y CONFIG[OCF]=y
CONFIG[OCF_PATH]=$(readlink -f "./ocf") CONFIG[OCF_PATH]=$(readlink -f "./ocf")

View File

@ -38,13 +38,12 @@ DIRS-y += bdev blob blobfs conf copy event json jsonrpc \
log lvol net rpc sock thread trace util nvme nvmf scsi ioat \ log lvol net rpc sock thread trace util nvme nvmf scsi ioat \
ut_mock iscsi notify ut_mock iscsi notify
ifeq ($(OS),Linux) ifeq ($(OS),Linux)
DIRS-y += nbd DIRS-y += nbd ftl
DIRS-$(CONFIG_VHOST) += vhost DIRS-$(CONFIG_VHOST) += vhost
DIRS-$(CONFIG_VIRTIO) += virtio DIRS-$(CONFIG_VIRTIO) += virtio
endif endif
DIRS-$(CONFIG_REDUCE) += reduce DIRS-$(CONFIG_REDUCE) += reduce
DIRS-$(CONFIG_FTL) += ftl
# If CONFIG_ENV is pointing at a directory in lib, build it. # If CONFIG_ENV is pointing at a directory in lib, build it.
# Out-of-tree env implementations must be built separately by the user. # Out-of-tree env implementations must be built separately by the user.

View File

@ -35,10 +35,9 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
C_SRCS = bdev_nvme.c bdev_nvme_rpc.c nvme_rpc.c common.c C_SRCS = bdev_nvme.c bdev_nvme_rpc.c nvme_rpc.c common.c
LIBNAME = bdev_nvme ifeq ($(OS),Linux)
ifeq ($(CONFIG_FTL),y)
C_SRCS += bdev_ftl.c bdev_ftl_rpc.c C_SRCS += bdev_ftl.c bdev_ftl_rpc.c
endif endif
LIBNAME = bdev_nvme
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -54,6 +54,7 @@ SYS_LIBS += -libverbs -lrdmacm
endif endif
ifeq ($(OS),Linux) ifeq ($(OS),Linux)
BLOCKDEV_MODULES_LIST += ftl
BLOCKDEV_MODULES_LIST += bdev_aio BLOCKDEV_MODULES_LIST += bdev_aio
SYS_LIBS += -laio SYS_LIBS += -laio
ifeq ($(CONFIG_VIRTIO),y) ifeq ($(CONFIG_VIRTIO),y)
@ -85,10 +86,6 @@ BLOCKDEV_MODULES_LIST += bdev_pmem
SYS_LIBS += -lpmemblk SYS_LIBS += -lpmemblk
endif endif
ifeq ($(CONFIG_FTL),y)
BLOCKDEV_MODULES_LIST += ftl
endif
SOCK_MODULES_LIST = sock_posix SOCK_MODULES_LIST = sock_posix
ifeq ($(CONFIG_VPP),y) ifeq ($(CONFIG_VPP),y)

View File

@ -197,10 +197,6 @@ if [ ! -d "${DEPENDENCY_DIR}/nvme-cli" ]; then
export SPDK_TEST_NVME_CLI=0 export SPDK_TEST_NVME_CLI=0
fi fi
if [ $SPDK_TEST_FTL -eq 1 ]; then
config_params+=' --with-ftl'
fi
if [ $SPDK_TEST_ISAL -eq 0 ]; then if [ $SPDK_TEST_ISAL -eq 0 ]; then
config_params+=' --without-isal' config_params+=' --without-isal'
fi fi

View File

@ -38,9 +38,8 @@ DIRS-y = bdev blob blobfs event ioat iscsi json jsonrpc log lvol
DIRS-y += notify nvme nvmf scsi sock thread util DIRS-y += notify nvme nvmf scsi sock thread util
DIRS-$(CONFIG_REDUCE) += reduce DIRS-$(CONFIG_REDUCE) += reduce
ifeq ($(OS),Linux) ifeq ($(OS),Linux)
DIRS-$(CONFIG_VHOST) += vhost DIRS-$(CONFIG_VHOST) += vhost ftl
endif endif
DIRS-$(CONFIG_FTL) += ftl
.PHONY: all clean $(DIRS-y) .PHONY: all clean $(DIRS-y)

View File

@ -153,9 +153,7 @@ $valgrind $testdir/lib/util/dif.c/dif_ut
if [ $(uname -s) = Linux ]; then if [ $(uname -s) = Linux ]; then
$valgrind $testdir/lib/vhost/vhost.c/vhost_ut $valgrind $testdir/lib/vhost/vhost.c/vhost_ut
fi
if grep -q '#define SPDK_CONFIG_FTL 1' $rootdir/include/spdk/config.h; then
$valgrind $testdir/lib/ftl/ftl_rwb.c/ftl_rwb_ut $valgrind $testdir/lib/ftl/ftl_rwb.c/ftl_rwb_ut
$valgrind $testdir/lib/ftl/ftl_ppa/ftl_ppa_ut $valgrind $testdir/lib/ftl/ftl_ppa/ftl_ppa_ut
$valgrind $testdir/lib/ftl/ftl_band.c/ftl_band_ut $valgrind $testdir/lib/ftl/ftl_band.c/ftl_band_ut