Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/108742/?format=api
http://patches.dpdk.org/api/patches/108742/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220316134551.1099599-6-bruce.richardson@intel.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20220316134551.1099599-6-bruce.richardson@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20220316134551.1099599-6-bruce.richardson@intel.com", "date": "2022-03-16T13:45:47", "name": "[v2,5/9] doc: emphasise VFIO over UIO-based modules in GSG", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "e32760e1f7794333b0c813dca76b79506fa96364", "submitter": { "id": 20, "url": "http://patches.dpdk.org/api/people/20/?format=api", "name": "Bruce Richardson", "email": "bruce.richardson@intel.com" }, "delegate": { "id": 1, "url": "http://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220316134551.1099599-6-bruce.richardson@intel.com/mbox/", "series": [ { "id": 22162, "url": "http://patches.dpdk.org/api/series/22162/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=22162", "date": "2022-03-16T13:45:42", "name": "Improve Linux drivers GSG section", "version": 2, "mbox": "http://patches.dpdk.org/series/22162/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/108742/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/108742/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4DCEDA0032;\n\tWed, 16 Mar 2022 14:46:39 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E2EF741174;\n\tWed, 16 Mar 2022 14:46:14 +0100 (CET)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id C3104410F6;\n Wed, 16 Mar 2022 14:46:07 +0100 (CET)", "from orsmga005.jf.intel.com ([10.7.209.41])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 16 Mar 2022 06:46:07 -0700", "from silpixa00399126.ir.intel.com ([10.237.223.34])\n by orsmga005.jf.intel.com with ESMTP; 16 Mar 2022 06:46:06 -0700" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1647438368; x=1678974368;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=6T7m2SDFr6Ll49aO5uLStzvMbZCAJFecSt/Wpj1zHcA=;\n b=UB85sJSnsBEw3fba8IKIC1WW3DhQGr9tXPMfYi/tE5Awn9zyBUfIBeRF\n M4xKcY5zYRN6/MTKfQm4zIb0E0k2bQzUSkH+Q0QXOyGXbBP01Ahoh/BR2\n yCZrUTtxyuEEcY0XBjhsob0QtXT/Q0p2OFUtwrIH0sMLun/TevPppCp1C\n C1Mvw/AOStzb3L+lTu2Mcjdf7OyRg3s3qlRPNsOOAN/HFNEOyLv+0fY8b\n yhJCzTkry8ENiKlkDivFTO4wIJIiNto9n7GAUAJw13S3UmeNFtXc1BE8w\n 7urzgZ7A0yH/EbW3iAHsMM+XWvcGmXi07tnCsWRwcivTJHX6g7vpM3OIT A==;", "X-IronPort-AV": [ "E=McAfee;i=\"6200,9189,10286\"; a=\"256780570\"", "E=Sophos;i=\"5.90,186,1643702400\"; d=\"scan'208\";a=\"256780570\"", "E=Sophos;i=\"5.90,186,1643702400\"; d=\"scan'208\";a=\"714606501\"" ], "X-ExtLoop1": "1", "From": "Bruce Richardson <bruce.richardson@intel.com>", "To": "dev@dpdk.org", "Cc": "Bruce Richardson <bruce.richardson@intel.com>,\n\tstable@dpdk.org", "Subject": "[PATCH v2 5/9] doc: emphasise VFIO over UIO-based modules in GSG", "Date": "Wed, 16 Mar 2022 13:45:47 +0000", "Message-Id": "<20220316134551.1099599-6-bruce.richardson@intel.com>", "X-Mailer": "git-send-email 2.32.0", "In-Reply-To": "<20220316134551.1099599-1-bruce.richardson@intel.com>", "References": "<20220302172217.472279-1-bruce.richardson@intel.com>\n <20220316134551.1099599-1-bruce.richardson@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "VFIO is to be strongly preferred over uio-based modules, so update our\ntext and examples to only refer to vfio, giving an initial reference at\nthe start to uio as a fallback option.\n\nCc: stable@dpdk.org\n\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\n---\n doc/guides/linux_gsg/linux_drivers.rst | 47 +++++++++++++++-----------\n 1 file changed, 28 insertions(+), 19 deletions(-)\n\n--\n2.32.0", "diff": "diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst\nindex b93feae7a1..bd649db929 100644\n--- a/doc/guides/linux_gsg/linux_drivers.rst\n+++ b/doc/guides/linux_gsg/linux_drivers.rst\n@@ -25,14 +25,18 @@ Binding and Unbinding Network Ports to/from the Kernel Modules\n This section is for PMDs which use the UIO or VFIO drivers.\n See :ref:`bifurcated_driver` section for more details.\n\n-As of release 1.4, DPDK applications no longer automatically unbind all supported network ports from the kernel driver in use.\n-Instead, in case the PMD being used use the VFIO or UIO drivers,\n-all ports that are to be used by a DPDK application must be bound to\n-the ``vfio-pci``, ``uio_pci_generic``, or ``igb_uio`` module\n-before the application is run.\n-For such PMDs, any network ports under Linux* control will be ignored and cannot be used by the application.\n-\n-To bind ports to the ``vfio-pci``, ``uio_pci_generic`` or ``igb_uio`` module\n+.. note::\n+\n+ It is recommended that ``vfio-pci`` be used as the kernel module for DPDK-bound ports in all cases.\n+ If an IOMMU is unavailable, the ``vfio-pci`` can be used in :ref:`no-iommu<vfio_noiommu>` mode.\n+ If, for some reason, vfio is unavailable, then UIO-based modules, ``igb_uio`` and ``uio_pci_generic`` may be used.\n+ See section :ref:`uio` for details.\n+\n+Most devices require that the hardware to be used by DPDK be unbound from the kernel driver it uses,\n+and instead be bound to the ``vfio-pci`` kernel module before the application is run.\n+For such PMDs, any network ports or other hardware under Linux* control will be ignored and cannot be used by the application.\n+\n+To bind ports to the ``vfio-pci`` module\n for DPDK use, or to return ports to Linux control,\n a utility script called ``dpdk-devbind.py`` is provided in the ``usertools`` subdirectory.\n This utility can be used to provide a view of the current state of the network ports on the system,\n@@ -72,37 +76,38 @@ To see the status of all network ports on the system:\n\n Network devices using DPDK-compatible driver\n ============================================\n- 0000:82:00.0 '82599EB 10-GbE NIC' drv=uio_pci_generic unused=ixgbe\n- 0000:82:00.1 '82599EB 10-GbE NIC' drv=uio_pci_generic unused=ixgbe\n+ 0000:82:00.0 '82599EB 10-GbE NIC' drv=vfio-pci unused=ixgbe\n+ 0000:82:00.1 '82599EB 10-GbE NIC' drv=vfio-pci unused=ixgbe\n\n Network devices using kernel driver\n ===================================\n- 0000:04:00.0 'I350 1-GbE NIC' if=em0 drv=igb unused=uio_pci_generic *Active*\n- 0000:04:00.1 'I350 1-GbE NIC' if=eth1 drv=igb unused=uio_pci_generic\n- 0000:04:00.2 'I350 1-GbE NIC' if=eth2 drv=igb unused=uio_pci_generic\n- 0000:04:00.3 'I350 1-GbE NIC' if=eth3 drv=igb unused=uio_pci_generic\n+ 0000:04:00.0 'I350 1-GbE NIC' if=em0 drv=igb unused=vfio-pci *Active*\n+ 0000:04:00.1 'I350 1-GbE NIC' if=eth1 drv=igb unused=vfio-pci\n+ 0000:04:00.2 'I350 1-GbE NIC' if=eth2 drv=igb unused=vfio-pci\n+ 0000:04:00.3 'I350 1-GbE NIC' if=eth3 drv=igb unused=vfio-pci\n\n Other network devices\n =====================\n <none>\n\n-To bind device ``eth1``,``04:00.1``, to the ``uio_pci_generic`` driver:\n+To bind device ``eth1``,``04:00.1``, to the ``vfio-pci`` driver:\n\n .. code-block:: console\n\n- ./usertools/dpdk-devbind.py --bind=uio_pci_generic 04:00.1\n+ ./usertools/dpdk-devbind.py --bind=vfio-pci 04:00.1\n\n or, alternatively,\n\n .. code-block:: console\n\n- ./usertools/dpdk-devbind.py --bind=uio_pci_generic eth1\n+ ./usertools/dpdk-devbind.py --bind=vfio-pci eth1\n\n-To restore device ``82:00.0`` to its original kernel binding:\n+When specifying device ids, wildcards can be used for the final part of the address.\n+To restore device ``82:00.0`` and ``82:00.1`` to their original kernel binding:\n\n .. code-block:: console\n\n- ./usertools/dpdk-devbind.py --bind=ixgbe 82:00.0\n+ ./usertools/dpdk-devbind.py --bind=ixgbe 82:00.*\n\n VFIO\n ----\n@@ -210,6 +215,8 @@ to use IO virtualization (such as Intel\\ |reg| VT-d).\n For proper operation of VFIO when running DPDK applications as a non-privileged user, correct permissions should also be set up.\n For more information, please refer to :ref:`Running_Without_Root_Privileges`.\n\n+.. _vfio_noiommu:\n+\n VFIO no-IOMMU mode\n ------------------\n\n@@ -240,6 +247,8 @@ After that, VFIO can be used with hardware devices as usual.\n to keep the degree of device access and programming that VFIO has,\n in situations where IOMMU is not available.\n\n+.. _uio:\n+\n UIO\n ---\n\n", "prefixes": [ "v2", "5/9" ] }{ "id": 108742, "url": "