Once upon a time, there was no driverctl, yet some crazy DPDK guys
were using UIO for userspace packet processing.
They came with their dpdk-devbind.py script and others started
copy/pasting how to use it everywhere.

Time has passed, and driverctl is now widespread.
driverctl offers persistency (across reboots) of the PCI device
configuration.

Prefer it and drop documentation about dpdk-devbind.py: the DPDK
documentation already provides plenty examples and is more likely to be
up to date for users who want to rely on it (besides, if any modification
in this tool was to occur, the DPDK documentation is a better place where
to look at).

Also use more standard tools like ethtool to identify the PCI device
backing a kernel netdev.

Signed-off-by: David Marchand <david.march...@redhat.com>
---
 Documentation/howto/dpdk.rst             |  8 +++--
 Documentation/intro/install/dpdk.rst     | 19 ++++++-----
 Documentation/topics/dpdk/phy.rst        | 40 +++++-------------------
 Documentation/topics/dpdk/vhost-user.rst |  4 +--
 4 files changed, 25 insertions(+), 46 deletions(-)

diff --git a/Documentation/howto/dpdk.rst b/Documentation/howto/dpdk.rst
index 73e630b07f..40a7e8fd8b 100644
--- a/Documentation/howto/dpdk.rst
+++ b/Documentation/howto/dpdk.rst
@@ -228,15 +228,17 @@ described in :ref:`dpdk-testpmd`. Once compiled, run the 
application::
 
 When you finish testing, bind the vNICs back to kernel::
 
-    $ $DPDK_DIR/usertools/dpdk-devbind.py --bind=virtio-pci 0000:00:03.0
-    $ $DPDK_DIR/usertools/dpdk-devbind.py --bind=virtio-pci 0000:00:04.0
+    $ driverctl unset-override 0000:00:03.0
+    $ driverctl unset-override 0000:00:04.0
 
 .. note::
 
   Valid PCI IDs must be passed in above example. The PCI IDs can be retrieved
   like so::
 
-      $ $DPDK_DIR/usertools/dpdk-devbind.py --status
+      $ driverctl -v list-devices | grep -iE '(ethernet|network)'
+      0000:03:00.0 virtio-pci (Virtio network device)
+      0000:04:00.0 virtio-pci (Virtio network device)
 
 More information on the dpdkvhostuserclient ports can be found in
 :doc:`/topics/dpdk/vhost-user`.
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 6cff4d81e0..47d79335b2 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -249,14 +249,17 @@ To ensure VT-d is enabled in the kernel, run::
 
 If VT-d is not enabled in the kernel, enable it now.
 
-Once VT-d is correctly configured, load the required modules and bind the NIC
-to the VFIO driver::
-
-    $ modprobe vfio-pci
-    $ /usr/bin/chmod a+x /dev/vfio
-    $ /usr/bin/chmod 0666 /dev/vfio/*
-    $ $DPDK_DIR/usertools/dpdk-devbind.py --bind=vfio-pci eth1
-    $ $DPDK_DIR/usertools/dpdk-devbind.py --status
+Once VT-d is correctly configured, bind the NIC to the VFIO driver::
+
+    $ ethtool -i enp0s3 | grep bus-info
+    bus-info: 0000:01:00.0
+
+    $ driverctl -v list-devices  | grep -iE '(ethernet|network)'
+    0000:01:00.0 virtio-pci (Virtio network device)
+    $ driverctl set-override 0000:01:00.0 vfio-pci
+    $ driverctl -v list-devices  | grep -iE '(ethernet|network)'
+    0000:01:00.0 vfio-pci [*] (Virtio network device)
+
 
 Setup OVS
 ~~~~~~~~~
diff --git a/Documentation/topics/dpdk/phy.rst 
b/Documentation/topics/dpdk/phy.rst
index 41b2c9132f..5d9a99013e 100644
--- a/Documentation/topics/dpdk/phy.rst
+++ b/Documentation/topics/dpdk/phy.rst
@@ -72,11 +72,13 @@ driver for the devices in kernel space.
 There are two different tools for binding drivers: :command:`driverctl` which
 is a generic tool for persistently configuring alternative device drivers, and
 :command:`dpdk-devbind` which is a DPDK-specific tool and whose changes do not
-persist across reboots. In addition, there are two options available for this
-kernel space driver - VFIO (Virtual Function I/O) and UIO (Userspace I/O) -
-along with a number of drivers for each option. We will demonstrate examples of
-both tools and will use the ``vfio-pci`` driver, which is the more secure,
-robust driver of those available. More information can be found in the
+persist across reboots.
+In addition, there are two options available for this kernel space driver
+- VFIO (Virtual Function I/O) and UIO (Userspace I/O) - along with a number
+of drivers for each option.
+We will demonstrate use of the generic tool and will use the ``vfio-pci``
+driver, which is the more secure, robust driver of those available.
+More details and information about the alternatives can be found in the
 `DPDK drivers documentation`_.
 
 To list devices using :command:`driverctl`, run::
@@ -89,34 +91,6 @@ You can then bind one or more of these devices using the 
same tool::
 
     $ driverctl set-override 0000:07:00.0 vfio-pci
 
-Alternatively, to list devices using :command:`dpdk-devbind`, run::
-
-    $ dpdk-devbind --status
-    Network devices using DPDK-compatible driver
-    ============================================
-    <none>
-
-    Network devices using kernel driver
-    ===================================
-    0000:07:00.0 'I350 Gigabit Network Connection 1521' if=enp7s0f0 drv=igb 
unused=igb_uio
-    0000:07:00.1 'I350 Gigabit Network Connection 1521' if=enp7s0f1 drv=igb 
unused=igb_uio
-
-    Other Network devices
-    =====================
-    ...
-
-Once again, you can then bind one or more of these devices using the same
-tool::
-
-    $ dpdk-devbind --bind=vfio-pci 0000:07:00.0
-
-.. versionchanged:: 2.6.0
-
-   Open vSwitch 2.6.0 added support for DPDK 16.07, which in turn renamed the
-   former ``dpdk_nic_bind`` tool to ``dpdk-devbind``.
-
-For more information, refer to the `DPDK drivers documentation`_.
-
 .. _DPDK drivers documentation: 
https://doc.dpdk.org/guides-24.11/linux_gsg/linux_drivers.html
 
 .. _dpdk-phy-multiqueue:
diff --git a/Documentation/topics/dpdk/vhost-user.rst 
b/Documentation/topics/dpdk/vhost-user.rst
index 20e8eb245b..76a5ec6638 100644
--- a/Documentation/topics/dpdk/vhost-user.rst
+++ b/Documentation/topics/dpdk/vhost-user.rst
@@ -415,8 +415,8 @@ Setup huge pages and DPDK devices using UIO::
     $ mount -t hugetlbfs hugetlbfs /dev/hugepages  # only if not already 
mounted
     $ modprobe uio
     $ insmod $DPDK_BUILD/kmod/igb_uio.ko
-    $ $DPDK_DIR/usertools/dpdk-devbind.py --status
-    $ $DPDK_DIR/usertools/dpdk-devbind.py -b igb_uio 00:03.0 00:04.0
+    $ driverctl set-override 0000:00:03.0 igb_uio
+    $ driverctl set-override 0000:00:04.0 igb_uio
 
 .. note::
 
-- 
2.49.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to