Signed-off-by: Lee Daly <lee.d...@intel.com> --- MAINTAINERS | 5 ++ devtools/test-build.sh | 4 ++ doc/guides/compressdevs/features/isal.ini | 40 +++++++++++++ doc/guides/compressdevs/index.rst | 1 + doc/guides/compressdevs/isal.rst | 94 +++++++++++++++++++++++++++++++ 5 files changed, 144 insertions(+) create mode 100644 doc/guides/compressdevs/features/isal.ini create mode 100644 doc/guides/compressdevs/isal.rst
diff --git a/MAINTAINERS b/MAINTAINERS index 37b9b1d..baccae7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -771,6 +771,11 @@ Compression Drivers M: Pablo de Lara <pablo.de.lara.gua...@intel.com> T: git://dpdk.org/next/dpdk-next-crypto +ISA-L PMD +M: Lee Daly <lee.d...@intel.com> +F: drivers/compress/isal +F: doc/guides/compressdevs/isal.rst +F: doc/guides/compressdevs/features/isal.ini Eventdev Drivers ---------------- diff --git a/devtools/test-build.sh b/devtools/test-build.sh index 3362edc..66f3ece 100755 --- a/devtools/test-build.sh +++ b/devtools/test-build.sh @@ -45,6 +45,7 @@ default_path=$PATH # - DPDK_DEP_SSL (y/[n]) # - DPDK_DEP_SZE (y/[n]) # - DPDK_DEP_ZLIB (y/[n]) +# - DPDK_DEP_ISAL (y/[n]) # - DPDK_MAKE_JOBS (int) # - DPDK_NOTIFY (notify-send) # - FLEXRAN_SDK @@ -129,6 +130,7 @@ reset_env () unset DPDK_DEP_SSL unset DPDK_DEP_SZE unset DPDK_DEP_ZLIB + unset DPDK_DEP_ISAL unset AESNI_MULTI_BUFFER_LIB_PATH unset ARMV8_CRYPTO_LIB_PATH unset FLEXRAN_SDK @@ -178,6 +180,8 @@ config () # <directory> <target> <options> test "$DPDK_DEP_ZLIB" != y || \ sed -ri 's,(BNX2X_PMD=)n,\1y,' $1/.config sed -ri 's,(NFP_PMD=)n,\1y,' $1/.config + test "$DPDK_DEP_ISAL" != y || \ + sed -ri 's,(ISAL_PMD=)n,\1y,' $1/.config test "$DPDK_DEP_PCAP" != y || \ sed -ri 's,(PCAP=)n,\1y,' $1/.config test -z "$ARMV8_CRYPTO_LIB_PATH" || \ diff --git a/doc/guides/compressdevs/features/isal.ini b/doc/guides/compressdevs/features/isal.ini new file mode 100644 index 0000000..82caa17 --- /dev/null +++ b/doc/guides/compressdevs/features/isal.ini @@ -0,0 +1,40 @@ +; +; Refer to default.ini for the full list of available PMD features. +; +; Supported features of 'ISA-L' compression driver. +; +[FEATURES] +HW Accelerated = N +CPU SSE = Y +CPU AVX = Y +CPU AVX2 = Y +CPU AVX512 = Y +CPU NEON = N +Stateful = N +By-Pass = N +Chained mbufs = N +; +; Supported algorithims of the 'ISA-L' compression driver. +; +[ALGORITHIM] +Deflate = Y +LZS = N +; +; Supported checksums of the 'ISA-L' compression driver. +; +[CHECKSUMS] +Adler32 = Y +Crc32 = Y +Adler32&Crc32 = N +; +; Supported huffman codes of the 'ISA-L' compression driver. +; +[HUFFMAN CODES] +Default = Y +Fixed = Y +Dynamic = N +Semi-Dynamic = Y +; +; Supported others of the 'ISA-L' compression driver. +; +[OTHERS] diff --git a/doc/guides/compressdevs/index.rst b/doc/guides/compressdevs/index.rst index 9271cee..bc59ce8 100644 --- a/doc/guides/compressdevs/index.rst +++ b/doc/guides/compressdevs/index.rst @@ -10,3 +10,4 @@ Compression Device Drivers :numbered: overview + isal diff --git a/doc/guides/compressdevs/isal.rst b/doc/guides/compressdevs/isal.rst new file mode 100644 index 0000000..d76f7ae --- /dev/null +++ b/doc/guides/compressdevs/isal.rst @@ -0,0 +1,94 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2018 Intel Corporation. + +ISA-L Compression Poll Mode Driver +================================== + +The ISA-L PMD (**librte_pmd_isal_comp**) provides poll mode compression & +decompression driver support for utilizing Intel ISA-L library, +which implements the deflate algorithim for both compression and decompression + +Features +-------- + +ISA-L PMD has support for: + +Compression/Decompression algorithm: + +* DEFLATE + +Huffman code type: + +* DEFAULT +* FIXED +* DYNAMIC + +Checksum support: + +* Adler32 +* CRC32 + +Window size support: + +* 32K + +Limitations +----------- + +* Chained mbufs are not supported. + +* Compressdev level 0, no compression, is not supported. ISA-L level 0 used for + +fixed huffman codes. + +* Out of order operations are not supported + +Installation +------------ + +* To build DPDK with Intel's ISA-L library, the user is required to download + +the library from + +`<https://github.com/01org/isa-l>`_. + +* Once downloaded, the user needs to build the library, the ISA-L autotools + +are usualy sufficient:: + + ./autogen.sh + ./configure + +make can be used to install the library on their system, before building DPDK:: + + make + sudo make install + +* To build with meson, the "libisal.pc" file, must be copied into "pkgconfig", + +e.g. /usr/lib/pkgconfig or /usr/lib64/pkgconfig depending on your system, + +for meson to find the ISA-L library. "libisal.pc" is located in library sources,:: + + cp isal/libisal.pc /usr/lib/pkgconfig/ + +instructions on how to download below. + + +Initialization +-------------- + +In order to enable this virtual compression PMD, user must: + +* Set CONFIG_RTE_LIBRTE_PMD_ISAL=y in config/common_base. + +To use the PMD in an application, user must: + +* Call rte_vdev_init("compress_isal") within the application. + +* Use --vdev="compress_isal" in the EAL options, which will call rte_vdev_init() internally. + +The following parameters (all optional) can be provided in the previous two calls: + +* socket_id: Specify the socket where the memory for the device is going to be allocated + (by default, socket_id will be the socket where the core that is creating the PMD is running on). -- 2.7.4