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
CONFIG_IGB_UIO_DRIVER=n
# Build FTL library
CONFIG_FTL=n
# Build Intel IPSEC_MB library
CONFIG_IPSEC_MB=n

8
configure vendored
View File

@ -75,8 +75,6 @@ function usage()
echo " example: /usr/src/ocf/"
echo " isal Enabled by default on x86 architecture. Can be built without though."
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 " the standard installation directory. If an argument is provided, it is"
echo " considered a directory containing liburing.a and io_uring.h."
@ -293,12 +291,6 @@ for i in "$@"; do
--without-igb-uio-driver)
CONFIG[IGB_UIO_DRIVER]=n
;;
--with-ftl)
CONFIG[FTL]=y
;;
--without-ftl)
CONFIG[FTL]=n
;;
--with-ocf)
CONFIG[OCF]=y
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 \
ut_mock iscsi notify
ifeq ($(OS),Linux)
DIRS-y += nbd
DIRS-y += nbd ftl
DIRS-$(CONFIG_VHOST) += vhost
DIRS-$(CONFIG_VIRTIO) += virtio
endif
DIRS-$(CONFIG_REDUCE) += reduce
DIRS-$(CONFIG_FTL) += ftl
# If CONFIG_ENV is pointing at a directory in lib, build it.
# 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
C_SRCS = bdev_nvme.c bdev_nvme_rpc.c nvme_rpc.c common.c
LIBNAME = bdev_nvme
ifeq ($(CONFIG_FTL),y)
ifeq ($(OS),Linux)
C_SRCS += bdev_ftl.c bdev_ftl_rpc.c
endif
LIBNAME = bdev_nvme
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

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

View File

@ -197,10 +197,6 @@ if [ ! -d "${DEPENDENCY_DIR}/nvme-cli" ]; then
export SPDK_TEST_NVME_CLI=0
fi
if [ $SPDK_TEST_FTL -eq 1 ]; then
config_params+=' --with-ftl'
fi
if [ $SPDK_TEST_ISAL -eq 0 ]; then
config_params+=' --without-isal'
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-$(CONFIG_REDUCE) += reduce
ifeq ($(OS),Linux)
DIRS-$(CONFIG_VHOST) += vhost
DIRS-$(CONFIG_VHOST) += vhost ftl
endif
DIRS-$(CONFIG_FTL) += ftl
.PHONY: all clean $(DIRS-y)

View File

@ -153,9 +153,7 @@ $valgrind $testdir/lib/util/dif.c/dif_ut
if [ $(uname -s) = Linux ]; then
$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_ppa/ftl_ppa_ut
$valgrind $testdir/lib/ftl/ftl_band.c/ftl_band_ut