configure: remove --with-igb-uio-driver option

DPDK 20.11 moved the kernel modules to separate
dpdk-kmod repository. It has to be built separate
from DPDK.

If needed for testing vm_setup.sh script now contains option
to build this driver.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I98a5eb956eb0cc60ec402d88fcdbd66d4854f19a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6033
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Michal Berger <michalx.berger@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Community-CI: Broadcom CI
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Tomasz Zawadzki 2021-01-21 09:36:10 -05:00
parent 1963b478f7
commit aa22321aca
9 changed files with 10 additions and 28 deletions

View File

@ -38,6 +38,10 @@ parameter in `spdk_blob_open_opts_init` function.
Updated DPDK submodule to DPDK 20.11. Updated DPDK submodule to DPDK 20.11.
Removed `--with-igb-uio-driver` configure option. Since DPDK 20.11 igb_uio driver
was moved to separate dpdk-kmods repository. If required, users need to refer to
dpdk-kmods repository to build the driver.
### nvme ### nvme
Directives support was added to the NVMe driver. Directives support was added to the NVMe driver.

3
CONFIG
View File

@ -143,9 +143,6 @@ CONFIG_SHARED=n
CONFIG_VTUNE=n CONFIG_VTUNE=n
CONFIG_VTUNE_DIR= CONFIG_VTUNE_DIR=
# Build the dpdk igb_uio driver
CONFIG_IGB_UIO_DRIVER=n
# Build Intel IPSEC_MB library # Build Intel IPSEC_MB library
CONFIG_IPSEC_MB=n CONFIG_IPSEC_MB=n

View File

@ -160,7 +160,7 @@ if [[ $SPDK_TEST_CRYPTO -eq 1 || $SPDK_TEST_REDUCE -eq 1 ]]; then
# up under that node too and memory needs to be available there for the tests. # up under that node too and memory needs to be available there for the tests.
CLEAR_HUGE=yes HUGE_EVEN_ALLOC=yes ./scripts/setup.sh CLEAR_HUGE=yes HUGE_EVEN_ALLOC=yes ./scripts/setup.sh
./scripts/setup.sh status ./scripts/setup.sh status
if grep -q '#define SPDK_CONFIG_IGB_UIO_DRIVER 1' $rootdir/include/spdk/config.h; then if [[ $SPDK_TEST_USE_IGB_UIO -eq 1 ]]; then
./scripts/qat_setup.sh igb_uio ./scripts/qat_setup.sh igb_uio
else else
./scripts/qat_setup.sh ./scripts/qat_setup.sh

10
configure vendored
View File

@ -49,10 +49,6 @@ function usage()
echo " example: /usr/share/dpdk/x86_64-default-linuxapp-gcc" echo " example: /usr/share/dpdk/x86_64-default-linuxapp-gcc"
echo " env Use an alternate environment implementation instead of DPDK." echo " env Use an alternate environment implementation instead of DPDK."
echo " Implies --without-dpdk." echo " Implies --without-dpdk."
echo " igb-uio-driver Build DPDK's igb-uio driver."
echo " Required on some systems to use qat devices. This flag is"
echo " effective only with the default dpdk submodule."
echo " No path required"
echo " idxd Build the IDXD library and accel framework plug-in module." echo " idxd Build the IDXD library and accel framework plug-in module."
echo " Disabled while experimental. Only built for x86 when enabled." echo " Disabled while experimental. Only built for x86 when enabled."
echo " crypto Build vbdev crypto module." echo " crypto Build vbdev crypto module."
@ -387,12 +383,6 @@ for i in "$@"; do
CONFIG[VTUNE_DIR]= CONFIG[VTUNE_DIR]=
CONFIG[VTUNE]=n CONFIG[VTUNE]=n
;; ;;
--with-igb-uio-driver)
CONFIG[IGB_UIO_DRIVER]=y
;;
--without-igb-uio-driver)
CONFIG[IGB_UIO_DRIVER]=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

@ -18,10 +18,8 @@ x86_64 system, or add `iommu.passthrough=1` on arm64 systems.
There are also some instances where a user may not want to use `uio_pci_generic` or the kernel There are also some instances where a user may not want to use `uio_pci_generic` or the kernel
version they are using has a bug where `uio_pci_generic` [fails to bind to NVMe drives](https://github.com/spdk/spdk/issues/399). version they are using has a bug where `uio_pci_generic` [fails to bind to NVMe drives](https://github.com/spdk/spdk/issues/399).
In these cases, users building with the DPDK submodule can build the `igb_uio` kernel module by In these cases, users can build the `igb_uio` kernel module which can be found in dpdk-kmods repository.
supplying `--with-igb-uio-driver` to `./configure`. Upon a successful make, the file will be To ensure that the driver is properly bound, users should specify `DRIVER_OVERRIDE=/path/to/igb_uio.ko`.
located at `dpdk/build/build/kmod/igb_uio.ko`. To ensure that the driver is properly bound, users
should specify `DRIVER_OVERRIDE=/path/to/igb_uio.ko`.
# Running SPDK as non-priviledged user {#system_configuration_nonroot} # Running SPDK as non-priviledged user {#system_configuration_nonroot}

View File

@ -40,9 +40,6 @@ DPDK_OPTS = -Denable_docs=false
DPDK_CFLAGS = DPDK_CFLAGS =
DPDK_KMODS = false DPDK_KMODS = false
ifeq ($(CONFIG_IGB_UIO_DRIVER),y)
DPDK_KMODS = true
endif
ifeq ($(OS),FreeBSD) ifeq ($(OS),FreeBSD)
DPDK_KMODS = true DPDK_KMODS = true
endif endif

View File

@ -144,7 +144,7 @@ for vf in "${qat_vf_bdfs[@]}"; do
echo "Your kernel's uio_pci_generic module does not support binding to virtual functions." echo "Your kernel's uio_pci_generic module does not support binding to virtual functions."
echo "It likely is missing Linux git commit ID acec09e67 which is needed to bind" echo "It likely is missing Linux git commit ID acec09e67 which is needed to bind"
echo "uio_pci_generic to virtual functions which have no legacy interrupt vector." echo "uio_pci_generic to virtual functions which have no legacy interrupt vector."
echo "Please rebuild spdk with --with-igb-uio-driver and re-run this script specifying the igb_uio driver." echo "Please build DPDK kernel module for igb_uio and re-run this script specifying the igb_uio driver."
fi fi
exit 1 exit 1
fi fi

View File

@ -320,8 +320,7 @@ function configure_linux_pci() {
driver_name="igb_uio" driver_name="igb_uio"
echo "WARNING: uio_pci_generic not detected - using $driver_name" echo "WARNING: uio_pci_generic not detected - using $driver_name"
else else
echo "No valid drivers found [vfio-pci, uio_pci_generic, igb_uio]. Please either enable the vfio-pci or uio_pci_generic" echo "No valid drivers found [vfio-pci, uio_pci_generic, igb_uio]. Please enable one of the kernel modules."
echo "kernel modules, or have SPDK build the igb_uio driver by running ./configure --with-igb-uio-driver and recompiling."
return 1 return 1
fi fi

View File

@ -429,9 +429,6 @@ function get_config_params() {
config_params+=" --with-dpdk=$SPDK_RUN_EXTERNAL_DPDK" config_params+=" --with-dpdk=$SPDK_RUN_EXTERNAL_DPDK"
fi fi
if [[ $SPDK_TEST_USE_IGB_UIO -eq 1 ]]; then
config_params+=" --with-igb-uio-driver"
fi
echo "$config_params" echo "$config_params"
xtrace_restore xtrace_restore
} }
@ -1174,7 +1171,7 @@ function autotest_cleanup() {
$rootdir/scripts/setup.sh reset $rootdir/scripts/setup.sh reset
$rootdir/scripts/setup.sh cleanup $rootdir/scripts/setup.sh cleanup
if [ $(uname -s) = "Linux" ]; then if [ $(uname -s) = "Linux" ]; then
if grep -q '#define SPDK_CONFIG_IGB_UIO_DRIVER 1' $rootdir/include/spdk/config.h; then if [[ $SPDK_TEST_USE_IGB_UIO -eq 1 ]]; then
[[ -e /sys/module/igb_uio ]] && rmmod igb_uio [[ -e /sys/module/igb_uio ]] && rmmod igb_uio
else else
modprobe -r uio_pci_generic modprobe -r uio_pci_generic