From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 51068A04BA; Mon, 5 Oct 2020 11:43:21 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 350CD1B70F; Mon, 5 Oct 2020 11:43:20 +0200 (CEST) Received: from new2-smtp.messagingengine.com (new2-smtp.messagingengine.com [66.111.4.224]) by dpdk.org (Postfix) with ESMTP id A88432BA8 for ; Mon, 5 Oct 2020 11:43:17 +0200 (CEST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.nyi.internal (Postfix) with ESMTP id F3CF5580396; Mon, 5 Oct 2020 05:43:16 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 05 Oct 2020 05:43:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=YtxCJDOo1u55z YJLipsW2uwcPE2zxvjoClfvWe7nbIs=; b=c5qOR/wbrJaQ8BVi3HwcgM01V1xDB C6SC830jyNSFawi+HTTXbH2+2qqdQ7u6Jol3MREsS5BqlMNeU85smG0H1BCVXHTH V4TPLOmRtoNQf7w6lni5xX18ognk8Phe5RhipeeTwP5I+aBCcqA/iO1Lcg96tN1A Wrmyii2JC/ooGAUWA5JOr/xGtmsn7WeVPwyH5zapfLdTzXhnHrwpyJfhZmeAT+Y3 GkGJRRv+pP6XSB+2vJaYXvYSLG+dPRv1zTXCX99SrVvrGuQR5/EQ3ShQBWQJPl/2 QEEZQY/KYw/ZpHlfleL39xAlbM6uXj9lZNQmPIvM+itFy9HQ/Bn9kyDCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=YtxCJDOo1u55zYJLipsW2uwcPE2zxvjoClfvWe7nbIs=; b=Vyc2hCod n2yZf6akfT0+NOKxpf7kVkG3RI3osHdpt4wpYB/tSTAOYqWGieaGARJin3SwFvt0 bstpuLa6Le15v1oh5Oy3gDhtaztykF7tzvxQiWvadFZ+He1MEuq6q6glD/kd+XSr S8td7ZUbFlltp70YChShDGZf7PSYkNedWZKevOd969WFrrV5R5hPhKJlZysv5Gi+ DPJ1A/cIqKXDcnvKlZcs9xv0u9C/5QvkWm5xn//sLKBpxhndVQewGwnYC+u5w7eN BCHfgwqFMkdZBj4ulqsMZn+yANhbeahVYZNfTyzwhGCkMSGVEdfEUy6I+5urrReJ z9osGOAu8/xu6A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrgedvgddvtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepvfhhohhmrghs ucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucggtf frrghtthgvrhhnpeehtdduuefggeekveehueeitdefhfdvkeevtedvfeeivdffudeuudeh udetiedvudenucffohhmrghinhepughpughkrdhorhhgnecukfhppeejjedrudefgedrvd dtfedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr ohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id C54E7328005A; Mon, 5 Oct 2020 05:43:13 -0400 (EDT) From: Thomas Monjalon To: dev@dpdk.org Cc: david.marchand@redhat.com, ferruh.yigit@intel.com, jerinj@marvell.com, stephen@networkplumber.org, Nicolas Chautru , Somalapuram Amaranath , John Griffin , Fiona Trahe , Deepak Kumar Jain , Marcin Wojtas , Michal Krawczyk , Guy Tzalik , Evgeny Schemeilin , Igor Chauskin , Ray Kinsella , Neil Horman , Anatoly Burakov Date: Mon, 5 Oct 2020 11:42:59 +0200 Message-Id: <20201005094300.590912-1-thomas@monjalon.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200907225049.547832-1-thomas@monjalon.net> References: <20200907225049.547832-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v4] kernel/linux: remove igb_uio X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory. Minutes of Technical Board meeting: https://mails.dpdk.org/archives/dev/2019-November/151763.html Signed-off-by: Thomas Monjalon Acked-by: Stephen Hemminger --- v4: Cc more maintainers v3: update more docs and provide a link to the new repo v2: update few docs (including release notes) --- MAINTAINERS | 1 - doc/guides/bbdevs/fpga_5gnr_fec.rst | 3 +- doc/guides/bbdevs/fpga_lte_fec.rst | 3 +- doc/guides/cryptodevs/ccp.rst | 3 +- doc/guides/cryptodevs/qat.rst | 3 +- doc/guides/howto/lm_bond_virtio_sriov.rst | 2 +- doc/guides/howto/lm_virtio_vhost_user.rst | 2 +- doc/guides/howto/openwrt.rst | 5 - doc/guides/linux_gsg/enable_func.rst | 3 +- doc/guides/linux_gsg/linux_drivers.rst | 23 +- doc/guides/nics/build_and_test.rst | 2 +- doc/guides/nics/ena.rst | 4 +- doc/guides/rel_notes/deprecation.rst | 7 - doc/guides/rel_notes/release_20_11.rst | 4 +- doc/guides/sample_app_ug/multi_process.rst | 2 - drivers/bus/pci/bsd/pci.c | 2 +- kernel/linux/igb_uio/Kbuild | 2 - kernel/linux/igb_uio/compat.h | 154 ----- kernel/linux/igb_uio/igb_uio.c | 660 --------------------- kernel/linux/igb_uio/meson.build | 20 - kernel/linux/meson.build | 2 +- 21 files changed, 21 insertions(+), 886 deletions(-) delete mode 100644 kernel/linux/igb_uio/Kbuild delete mode 100644 kernel/linux/igb_uio/compat.h delete mode 100644 kernel/linux/igb_uio/igb_uio.c delete mode 100644 kernel/linux/igb_uio/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 681093d949..f15eec0c35 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -290,7 +290,6 @@ F: doc/guides/linux_gsg/ Linux UIO M: Ferruh Yigit -F: kernel/linux/igb_uio/ F: drivers/bus/pci/linux/*uio* Linux VFIO diff --git a/doc/guides/bbdevs/fpga_5gnr_fec.rst b/doc/guides/bbdevs/fpga_5gnr_fec.rst index 6760391e8c..709e7baed9 100644 --- a/doc/guides/bbdevs/fpga_5gnr_fec.rst +++ b/doc/guides/bbdevs/fpga_5gnr_fec.rst @@ -93,8 +93,7 @@ the UIO driver by repeating this command for every function. .. code-block:: console - cd - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "8086 0d8f" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vd8086:0d8f diff --git a/doc/guides/bbdevs/fpga_lte_fec.rst b/doc/guides/bbdevs/fpga_lte_fec.rst index fdc8a76981..344a2cc06a 100644 --- a/doc/guides/bbdevs/fpga_lte_fec.rst +++ b/doc/guides/bbdevs/fpga_lte_fec.rst @@ -92,8 +92,7 @@ the UIO driver by repeating this command for every function. .. code-block:: console - cd - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "1172 5052" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vd1172: diff --git a/doc/guides/cryptodevs/ccp.rst b/doc/guides/cryptodevs/ccp.rst index a43fe92de9..9c1997768a 100644 --- a/doc/guides/cryptodevs/ccp.rst +++ b/doc/guides/cryptodevs/ccp.rst @@ -75,9 +75,8 @@ Initialization Bind the CCP devices to DPDK UIO driver module before running the CCP PMD stack. e.g. for the 0x1456 device:: - cd to the top-level DPDK directory modprobe uio - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "1022 1456" > /sys/bus/pci/drivers/igb_uio/new_id Another way to bind the CCP devices to DPDK UIO driver is by using the ``dpdk-devbind.py`` script. diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst index e5d2cf4997..7c56293192 100644 --- a/doc/guides/cryptodevs/qat.rst +++ b/doc/guides/cryptodevs/qat.rst @@ -642,9 +642,8 @@ Install the DPDK igb_uio driver, bind the VF PCI Device id to it and use lspci to confirm the VF devices are now in use by igb_uio kernel driver, e.g. for the C62x device:: - cd to the top-level DPDK directory modprobe uio - insmod ./build/kmod/igb_uio.ko + insmod igb_uio.ko echo "8086 37c9" > /sys/bus/pci/drivers/igb_uio/new_id lspci -vvd:37c9 diff --git a/doc/guides/howto/lm_bond_virtio_sriov.rst b/doc/guides/howto/lm_bond_virtio_sriov.rst index 02ba1cdf5d..16d86d122c 100644 --- a/doc/guides/howto/lm_bond_virtio_sriov.rst +++ b/doc/guides/howto/lm_bond_virtio_sriov.rst @@ -591,7 +591,7 @@ Set up DPDK in the Virtual Machine rmmod virtio-pci ixgbevf modprobe uio - insmod /root/dpdk//kernel/linux/igb_uio/igb_uio.ko + insmod igb_uio.ko /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 diff --git a/doc/guides/howto/lm_virtio_vhost_user.rst b/doc/guides/howto/lm_virtio_vhost_user.rst index 330ff5a9c8..e495ac976e 100644 --- a/doc/guides/howto/lm_virtio_vhost_user.rst +++ b/doc/guides/howto/lm_virtio_vhost_user.rst @@ -421,7 +421,7 @@ setup_dpdk_virtio_in_vm.sh rmmod virtio-pci modprobe uio - insmod /root/dpdk//kernel/linux/igb_uio/igb_uio.ko + insmod igb_uio.ko /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 diff --git a/doc/guides/howto/openwrt.rst b/doc/guides/howto/openwrt.rst index 6081f057be..e1d7db2a90 100644 --- a/doc/guides/howto/openwrt.rst +++ b/doc/guides/howto/openwrt.rst @@ -103,11 +103,6 @@ first. meson builddir --cross-file openwrt-cross ninja -C builddir -.. note:: - - For compiling the igb_uio with the kernel version used in target machine, - you need to explicitly specify kernel_dir in meson_options.txt. - Running DPDK application on OpenWrt ----------------------------------- diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index 06c17e4058..aab32252ea 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -155,4 +155,5 @@ This results in pass-through of the DMAR (DMA Remapping) lookup in the host. Also, if ``INTEL_IOMMU_DEFAULT_ON`` is not set in the kernel, the ``intel_iommu=on`` kernel parameter must be used too. This ensures that the Intel IOMMU is being initialized as expected. -Please note that while using ``iommu=pt`` is compulsory for ``igb_uio driver``, the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. +Please note that while using ``iommu=pt`` is compulsory for ``igb_uio`` driver, +the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst index 7789c572bb..080b44955a 100644 --- a/doc/guides/linux_gsg/linux_drivers.rst +++ b/doc/guides/linux_gsg/linux_drivers.rst @@ -27,33 +27,20 @@ can provide the uio capability. This module can be loaded using the command: ``uio_pci_generic`` module doesn't support the creation of virtual functions. -As an alternative to the ``uio_pci_generic``, the DPDK also includes the igb_uio -module which can be found in the kernel/linux subdirectory referred to above. It can -be loaded as shown below: +As an alternative to the ``uio_pci_generic``, there is the ``igb_uio`` module +which can be found in the repository `dpdk-kmods `_. +It can be loaded as shown below: .. code-block:: console sudo modprobe uio - sudo insmod /kernel/linux/igb_uio/igb_uio.ko - -.. note:: - - Building DPDK Linux kernel modules is disabled by default starting from DPDK 20.02. - To enable them again, the config option "enable_kmods" needs to be set - in the meson build configuration. - See :ref:`adjusting_build_options` for details on how to set/clear build options. - It is planned to move ``igb_uio`` module to a different git repository. - -.. note:: - - For some devices which lack support for legacy interrupts, e.g. virtual function - (VF) devices, the ``igb_uio`` module may be needed in place of ``uio_pci_generic``. + sudo insmod igb_uio.ko .. note:: If UEFI secure boot is enabled, the Linux kernel may disallow the use of UIO on the system. Therefore, devices for use by DPDK should be bound to the - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. + ``vfio-pci`` kernel module rather than any UIO-based module. For more details see :ref:`linux_gsg_binding_kernel` below. .. note:: diff --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst index 3138c0f880..ba196382a9 100644 --- a/doc/guides/nics/build_and_test.rst +++ b/doc/guides/nics/build_and_test.rst @@ -69,7 +69,7 @@ This section demonstrates how to setup and run ``testpmd`` in Linux. .. code-block:: console modprobe uio - insmod ./x86_64-native-linux-gcc/kmod/igb_uio.ko + insmod igb_uio.ko or diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst index bec97c3326..3a6074cdf6 100644 --- a/doc/guides/nics/ena.rst +++ b/doc/guides/nics/ena.rst @@ -169,8 +169,8 @@ Prerequisites (*) ENAv2 hardware supports Low Latency Queue v2 (LLQv2). This feature reduces the latency of the packets by pushing the header directly through the PCI to the device, before the DMA is even triggered. For proper work - kernel PCI driver must support write combining (WC). In mainline version of - ``igb_uio`` (in DPDK repo) it must be enabled by loading module with + kernel PCI driver must support write combining (WC). + In DPDK ``igb_uio`` it must be enabled by loading module with ``wc_activate=1`` flag (example below). However, mainline's vfio-pci driver in kernel doesn't have WC support yet (planed to be added). If vfio-pci used user should be either turn off ENAv2 (to avoid performance diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 0be208edca..2d2a7d20b6 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -78,13 +78,6 @@ Deprecation Notices These wrappers must be used for patches that need to be merged in 20.08 onwards. This change will not introduce any performance degradation. -* igb_uio: In the view of reducing the kernel dependency from the main tree, - as a first step, the Technical Board decided to move ``igb_uio`` - kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory - in 20.11. - Minutes of Technical Board Meeting of `2019-11-06 - `_. - * lib: will fix extending some enum/define breaking the ABI. There are multiple samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is used by iterators, and arrays holding these values are sized with this diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 4e61431c6c..243bd940a4 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -122,9 +122,11 @@ Removed Items * vhost: Dequeue zero-copy support has been removed. +* kernel: The module ``igb_uio`` has been moved to the git repository +``dpdk-kmods`` in a new directory ``linux/igb_uio``. + * Removed Python 2 support since it was EOL'd in January 2020. - API Changes ----------- diff --git a/doc/guides/sample_app_ug/multi_process.rst b/doc/guides/sample_app_ug/multi_process.rst index f2a79a6397..bd329c2db2 100644 --- a/doc/guides/sample_app_ug/multi_process.rst +++ b/doc/guides/sample_app_ug/multi_process.rst @@ -64,8 +64,6 @@ The process should start successfully and display a command prompt as follows: EAL: Virtual area found at 0x7ff200000000 (size = 0x40000000) ... - EAL: check igb_uio module - EAL: check module finished EAL: Master core 0 is ready (tid=54e41820) EAL: Core 1 is ready (tid=53b32700) diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c index 2ed8261349..97c611737a 100644 --- a/drivers/bus/pci/bsd/pci.c +++ b/drivers/bus/pci/bsd/pci.c @@ -50,7 +50,7 @@ * This code is used to simulate a PCI probe by parsing information in * sysfs. Moreover, when a registered driver matches a device, the * kernel driver currently using it is unloaded and replaced by - * igb_uio module, which is a very minimal userland driver for Intel + * nic_uio module, which is a very minimal userland driver for Intel * network card, only providing access to PCI BAR to applications, and * enabling bus master. */ diff --git a/kernel/linux/igb_uio/Kbuild b/kernel/linux/igb_uio/Kbuild deleted file mode 100644 index 3ab85c4116..0000000000 diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h deleted file mode 100644 index 8dbb896ae1..0000000000 diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c deleted file mode 100644 index 039f5a5f63..0000000000 diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build deleted file mode 100644 index 80540aecee..0000000000 diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index da79df1687..5c864a4653 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -subdirs = ['igb_uio', 'kni'] +subdirs = ['kni'] # if we are cross-compiling we need kernel_dir specified if get_option('kernel_dir') == '' and meson.is_cross_build() -- 2.28.0