Commit 552e21cc authored by Ziye Yang's avatar Ziye Yang Committed by Darek Stojaczyk
Browse files

spdk: Add ISA-L support with related crc32 function



In SPDK, we will build isa-l with no shared option
and then integrate it into SPDK. And we do not need
to install isal in the system libaries.

Note: ocf build in autobuild.sh now needs to build
include/spdk/config.h before building the ocf library,
to ensure that header is available in a clean build
environment.

Change-Id: I3f0ce6932b386de17a77cf5bfdfd738b22417e2d
Signed-off-by: default avatarZiye Yang <optimistyzy@gmail.com>
Signed-off-by: default avatarpaul luse <paul.e.luse@intel.com>
Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-on: https://review.gerrithub.io/c/441279


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarChunyang Hui <chunyang.hui@intel.com>
parent d3bfd244
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,3 +4,6 @@
[submodule "intel-ipsec-mb"]
	path = intel-ipsec-mb
	url = https://github.com/spdk/intel-ipsec-mb.git
[submodule "isa-l"]
	path = isa-l
	url = https://github.com/spdk/isa-l.git
+4 −0
Original line number Diff line number Diff line
@@ -14,6 +14,10 @@ A new public header file env_dpdk.h has been introduced, and function spdk_env_d
is added into it. If user is using DPDK, and already called rte_eal_init, then include
include/spdk/env_dpdk.h, and call spdk_env_dpdk_post_init() instead of spdk_env_init.

ISA-L has been added as an SPDK submodule.  ISA-L is enabled by default on x86 architecture
to accelerate algorithms such as CRC for iSCSI and NVMe-oF.  Users may still disable ISA-L
by explicitly passing --without-isal to the configure script.

### util

A new uuid API `spdk_uuid_copy` was added to make a copy of the source uuid.
+3 −0
Original line number Diff line number Diff line
@@ -129,3 +129,6 @@ CONFIG_IPSEC_MB=n
CONFIG_OCF=n
CONFIG_OCF_PATH=
CONFIG_CUSTOMOCF=n

# Build ISA-L library
CONFIG_ISAL=y
+5 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ DIRS-$(CONFIG_SHARED) += shared_lib
DIRS-y += examples app include
DIRS-$(CONFIG_TESTS) += test
DIRS-$(CONFIG_IPSEC_MB) += ipsecbuild
DIRS-$(CONFIG_ISAL) += isalbuild

.PHONY: all clean $(DIRS-y) include/spdk/config.h mk/config.mk mk/cc.mk \
	cc_version cxx_version .libs_only_other .ldflags ldflags
@@ -64,6 +65,10 @@ ifeq ($(CONFIG_IPSEC_MB),y)
LIB += ipsecbuild
endif

ifeq ($(CONFIG_ISAL),y)
LIB += isalbuild
endif

all: $(DIRS-y)
clean: $(DIRS-y)
	$(Q)rm -f mk/cc.mk
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ if [ "$SPDK_TEST_OCF" -eq 1 ]; then
	# They don't need to be checked with scanbuild and code coverage is not applicable
	# So we precompile OCF now for further use as standalone static library
	./configure $(echo $config_params | sed 's/--enable-coverage//g')
	$MAKE $MAKEFLAGS include/spdk/config.h
	CC=gcc CCAR=ar $MAKE $MAKEFLAGS -C lib/bdev/ocf/env exportlib O=$rootdir/build/ocf.a
	# Set config to use precompiled library
	config_params="$config_params --with-ocf=/$rootdir/build/ocf.a"
Loading