This is the port of the vbdev compress logic into the accel framework. It includes just one enhancement, to only fill each mbuf in either src or dst array with max "window size" param to avoid QAT errors. Note that DPDK ISAL PMD was not ported as we have native ISAL compression in accel now. Note: ISAL w/DPDK is still built w/this patch, that can't be removed until the vbdev module moves to accel fw as it still depends on DPDK ISAL PMD. Follow-on patches will include addition C API for PMD selection, this patch just gets equivalent functionality going. Upcoming patches will also convert the vbdev compress module to use the accel framework instead of talking directly to compressdev. More patches will also address comments on vbdev common code that addressed here would make the review challenging. This patch also fixes a bug in the ported code that needs to be fixed here to pass CI. Capability discovery was incorrect causing all devices to appear to not support chained mbufs, with the mbuf splitting code this is important to get right. Signed-off-by: paul luse <paul.e.luse@intel.com> Change-Id: I7f526404819b145ef26e40877122ba80a02fcf51 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15178 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
218 lines
4.7 KiB
Plaintext
218 lines
4.7 KiB
Plaintext
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright (C) 2015 Intel Corporation.
|
|
# All rights reserved.
|
|
# Copyright (c) 2021, 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# Copyright (c) 2022 Dell Inc, or its subsidiaries.
|
|
#
|
|
|
|
# configure options: __CONFIGURE_OPTIONS__
|
|
|
|
# Installation prefix
|
|
CONFIG_PREFIX="/usr/local"
|
|
|
|
# Target architecture
|
|
CONFIG_ARCH=native
|
|
|
|
# Destination directory for the libraries
|
|
CONFIG_LIBDIR=
|
|
|
|
# Prefix for cross compilation
|
|
CONFIG_CROSS_PREFIX=
|
|
|
|
# Build with debug logging. Turn off for performance testing and normal usage
|
|
CONFIG_DEBUG=n
|
|
|
|
# Treat warnings as errors (fail the build on any warning).
|
|
CONFIG_WERROR=n
|
|
|
|
# Build with link-time optimization.
|
|
CONFIG_LTO=n
|
|
|
|
# Generate profile guided optimization data.
|
|
CONFIG_PGO_CAPTURE=n
|
|
|
|
# Use profile guided optimization data.
|
|
CONFIG_PGO_USE=n
|
|
|
|
# Build with code coverage instrumentation.
|
|
CONFIG_COVERAGE=n
|
|
|
|
# Build with Address Sanitizer enabled
|
|
CONFIG_ASAN=n
|
|
|
|
# Build with Undefined Behavior Sanitizer enabled
|
|
CONFIG_UBSAN=n
|
|
|
|
# Build with LLVM fuzzing enabled
|
|
CONFIG_FUZZER=n
|
|
CONFIG_FUZZER_LIB=
|
|
|
|
# Build with Thread Sanitizer enabled
|
|
CONFIG_TSAN=n
|
|
|
|
# Build functional tests
|
|
CONFIG_TESTS=y
|
|
|
|
# Build unit tests
|
|
CONFIG_UNIT_TESTS=y
|
|
|
|
# Build examples
|
|
CONFIG_EXAMPLES=y
|
|
|
|
# Build apps
|
|
CONFIG_APPS=y
|
|
|
|
# Build with Control-flow Enforcement Technology (CET)
|
|
CONFIG_CET=n
|
|
|
|
# Directory that contains the desired SPDK environment library.
|
|
# By default, this is implemented using DPDK.
|
|
CONFIG_ENV=
|
|
|
|
# This directory should contain 'include' and 'lib' directories for your DPDK
|
|
# installation.
|
|
CONFIG_DPDK_DIR=
|
|
# Automatically set via pkg-config when bare --with-dpdk is set
|
|
CONFIG_DPDK_LIB_DIR=
|
|
CONFIG_DPDK_INC_DIR=
|
|
CONFIG_DPDK_PKG_CONFIG=n
|
|
|
|
# This directory should contain 'include' and 'lib' directories for WPDK.
|
|
CONFIG_WPDK_DIR=
|
|
|
|
# Build SPDK FIO plugin. Requires CONFIG_FIO_SOURCE_DIR set to a valid
|
|
# fio source code directory.
|
|
CONFIG_FIO_PLUGIN=n
|
|
|
|
# This directory should contain the source code directory for fio
|
|
# which is required for building the SPDK FIO plugin.
|
|
CONFIG_FIO_SOURCE_DIR=/usr/src/fio
|
|
|
|
# Enable RDMA support for the NVMf target.
|
|
# Requires ibverbs development libraries.
|
|
CONFIG_RDMA=n
|
|
CONFIG_RDMA_SEND_WITH_INVAL=n
|
|
CONFIG_RDMA_SET_ACK_TIMEOUT=n
|
|
CONFIG_RDMA_SET_TOS=n
|
|
CONFIG_RDMA_PROV=verbs
|
|
|
|
# Enable NVMe Character Devices.
|
|
CONFIG_NVME_CUSE=n
|
|
|
|
# Enable FC support for the NVMf target.
|
|
# Requires FC low level driver (from FC vendor)
|
|
CONFIG_FC=n
|
|
CONFIG_FC_PATH=
|
|
|
|
# Build Ceph RBD support in bdev modules
|
|
# Requires librbd development libraries
|
|
CONFIG_RBD=n
|
|
|
|
# Build DAOS support in bdev modules
|
|
# Requires daos development libraries
|
|
CONFIG_DAOS=n
|
|
CONFIG_DAOS_DIR=
|
|
|
|
# Build vhost library.
|
|
CONFIG_VHOST=y
|
|
|
|
# Build vhost initiator (Virtio) driver.
|
|
CONFIG_VIRTIO=y
|
|
|
|
# Build custom vfio-user transport for NVMf target and NVMe initiator.
|
|
CONFIG_VFIO_USER=n
|
|
CONFIG_VFIO_USER_DIR=
|
|
|
|
# Build with PMDK backends
|
|
CONFIG_PMDK=n
|
|
CONFIG_PMDK_DIR=
|
|
|
|
# Build with xNVMe
|
|
CONFIG_XNVME=n
|
|
|
|
# Enable the dependencies for building the DPDK accel compress module
|
|
CONFIG_DPDK_COMPRESSDEV=n
|
|
|
|
# Enable the dependencies for building the compress vbdev, includes the reduce library
|
|
CONFIG_VBDEV_COMPRESS=n
|
|
|
|
# Enable mlx5_pci dpdk compress PMD, enabled automatically if CONFIG_VBDEV_COMPRESS=y and libmlx5 exists
|
|
CONFIG_VBDEV_COMPRESS_MLX5=n
|
|
|
|
# Enable mlx5_pci dpdk crypto PMD, enabled automatically if CONFIG_CRYPTO=y and libmlx5 exists
|
|
CONFIG_CRYPTO_MLX5=n
|
|
|
|
# Requires libiscsi development libraries.
|
|
CONFIG_ISCSI_INITIATOR=n
|
|
|
|
# Enable the dependencies for building the crypto vbdev
|
|
CONFIG_CRYPTO=n
|
|
|
|
# Build spdk shared libraries in addition to the static ones.
|
|
CONFIG_SHARED=n
|
|
|
|
# Build with VTune support.
|
|
CONFIG_VTUNE=n
|
|
CONFIG_VTUNE_DIR=
|
|
|
|
# Build Intel IPSEC_MB library
|
|
CONFIG_IPSEC_MB=n
|
|
|
|
# Enable OCF module
|
|
CONFIG_OCF=n
|
|
CONFIG_OCF_PATH=
|
|
CONFIG_CUSTOMOCF=n
|
|
|
|
# Build ISA-L library
|
|
CONFIG_ISAL=y
|
|
|
|
# Build ISA-L-crypto library
|
|
CONFIG_ISAL_CRYPTO=y
|
|
|
|
# Build with IO_URING support
|
|
CONFIG_URING=n
|
|
|
|
# Build IO_URING bdev with ZNS support
|
|
CONFIG_URING_ZNS=n
|
|
|
|
# Path to custom built IO_URING library
|
|
CONFIG_URING_PATH=
|
|
|
|
# Path to custom built OPENSSL library
|
|
CONFIG_OPENSSL_PATH=
|
|
|
|
# Build with FUSE support
|
|
CONFIG_FUSE=n
|
|
|
|
# Build with RAID5f support
|
|
CONFIG_RAID5F=n
|
|
|
|
# Build with IDXD support
|
|
# In this mode, SPDK fully controls the DSA device.
|
|
CONFIG_IDXD=n
|
|
|
|
# Build with USDT support
|
|
CONFIG_USDT=n
|
|
|
|
# Build with IDXD kernel support.
|
|
# In this mode, SPDK shares the DSA device with the kernel.
|
|
CONFIG_IDXD_KERNEL=n
|
|
|
|
# arc4random is available in stdlib.h
|
|
CONFIG_HAVE_ARC4RANDOM=n
|
|
|
|
# Is DPDK using libbsd?
|
|
CONFIG_HAVE_LIBBSD=n
|
|
|
|
# Is DPDK using libarchive?
|
|
CONFIG_HAVE_LIBARCHIVE=n
|
|
|
|
# Path to IPSEC_MB used by DPDK
|
|
CONFIG_IPSEC_MB_DIR=
|
|
|
|
# Generate Storage Management Agent's protobuf interface
|
|
CONFIG_SMA=n
|
|
|
|
# Build with Avahi support
|
|
CONFIG_AVAHI=n
|