From aa22321aca961e15da330fe91c50502bb7c3e69b Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Thu, 21 Jan 2021 09:36:10 -0500 Subject: [PATCH] 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 Change-Id: I98a5eb956eb0cc60ec402d88fcdbd66d4854f19a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6033 Reviewed-by: Karol Latecki Reviewed-by: Michal Berger Reviewed-by: Jim Harris Reviewed-by: Aleksey Marchuk Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins --- CHANGELOG.md | 4 ++++ CONFIG | 3 --- autotest.sh | 2 +- configure | 10 ---------- doc/system_configuration.md | 6 ++---- dpdkbuild/Makefile | 3 --- scripts/qat_setup.sh | 2 +- scripts/setup.sh | 3 +-- test/common/autotest_common.sh | 5 +---- 9 files changed, 10 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2aeb33b6be..3f0ca09db6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,10 @@ parameter in `spdk_blob_open_opts_init` function. 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 Directives support was added to the NVMe driver. diff --git a/CONFIG b/CONFIG index aafb4d4ab3..0f97527445 100644 --- a/CONFIG +++ b/CONFIG @@ -143,9 +143,6 @@ CONFIG_SHARED=n CONFIG_VTUNE=n CONFIG_VTUNE_DIR= -# Build the dpdk igb_uio driver -CONFIG_IGB_UIO_DRIVER=n - # Build Intel IPSEC_MB library CONFIG_IPSEC_MB=n diff --git a/autotest.sh b/autotest.sh index a5f5d93838..83be1de8ea 100755 --- a/autotest.sh +++ b/autotest.sh @@ -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. CLEAR_HUGE=yes HUGE_EVEN_ALLOC=yes ./scripts/setup.sh ./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 else ./scripts/qat_setup.sh diff --git a/configure b/configure index 6a20d2404c..e41a96271e 100755 --- a/configure +++ b/configure @@ -49,10 +49,6 @@ function usage() echo " example: /usr/share/dpdk/x86_64-default-linuxapp-gcc" echo " env Use an alternate environment implementation instead of 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 " Disabled while experimental. Only built for x86 when enabled." echo " crypto Build vbdev crypto module." @@ -387,12 +383,6 @@ for i in "$@"; do CONFIG[VTUNE_DIR]= CONFIG[VTUNE]=n ;; - --with-igb-uio-driver) - CONFIG[IGB_UIO_DRIVER]=y - ;; - --without-igb-uio-driver) - CONFIG[IGB_UIO_DRIVER]=n - ;; --with-ocf) CONFIG[OCF]=y CONFIG[OCF_PATH]=$(readlink -f "./ocf") diff --git a/doc/system_configuration.md b/doc/system_configuration.md index 2d3e4ace58..14effee687 100644 --- a/doc/system_configuration.md +++ b/doc/system_configuration.md @@ -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 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 -supplying `--with-igb-uio-driver` to `./configure`. Upon a successful make, the file will be -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`. +In these cases, users can build the `igb_uio` kernel module which can be found in dpdk-kmods repository. +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} diff --git a/dpdkbuild/Makefile b/dpdkbuild/Makefile index e18536e567..3c058b80ea 100644 --- a/dpdkbuild/Makefile +++ b/dpdkbuild/Makefile @@ -40,9 +40,6 @@ DPDK_OPTS = -Denable_docs=false DPDK_CFLAGS = DPDK_KMODS = false -ifeq ($(CONFIG_IGB_UIO_DRIVER),y) -DPDK_KMODS = true -endif ifeq ($(OS),FreeBSD) DPDK_KMODS = true endif diff --git a/scripts/qat_setup.sh b/scripts/qat_setup.sh index 7520b1fdd9..3040bbbe2c 100755 --- a/scripts/qat_setup.sh +++ b/scripts/qat_setup.sh @@ -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 "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 "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 exit 1 fi diff --git a/scripts/setup.sh b/scripts/setup.sh index f790146a01..1c5024af63 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -320,8 +320,7 @@ function configure_linux_pci() { driver_name="igb_uio" echo "WARNING: uio_pci_generic not detected - using $driver_name" else - echo "No valid drivers found [vfio-pci, uio_pci_generic, igb_uio]. Please either enable the vfio-pci or uio_pci_generic" - echo "kernel modules, or have SPDK build the igb_uio driver by running ./configure --with-igb-uio-driver and recompiling." + echo "No valid drivers found [vfio-pci, uio_pci_generic, igb_uio]. Please enable one of the kernel modules." return 1 fi diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index 70573eb896..ae229b23ea 100755 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -429,9 +429,6 @@ function get_config_params() { config_params+=" --with-dpdk=$SPDK_RUN_EXTERNAL_DPDK" fi - if [[ $SPDK_TEST_USE_IGB_UIO -eq 1 ]]; then - config_params+=" --with-igb-uio-driver" - fi echo "$config_params" xtrace_restore } @@ -1174,7 +1171,7 @@ function autotest_cleanup() { $rootdir/scripts/setup.sh reset $rootdir/scripts/setup.sh cleanup 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 else modprobe -r uio_pci_generic