modprobe uio
echo 512 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
modprobe uio_pci_generic
- python usertools/dpdk-devbind.py -b uio_pci_generic 00:03.0
+ ./usertools/dpdk-devbind.py -b uio_pci_generic 00:03.0
We use testpmd as the forwarding application in this example.
.. code-block:: console
- python usertools/dpdk-devbind.py -b vfio-pci 00:03.0
+ ./usertools/dpdk-devbind.py -b vfio-pci 00:03.0
Example
~~~~~~~
It is used to specify link speed of virtio device. Link speed is a part of
link status structure. It could be requested by application using
rte_eth_link_get_nowait function.
- (Default: 10000 (10G))
+ (Default: 0xffffffff (Unknown))
#. ``vectorized``:
It is used to specify link speed of virtio device. Link speed is a part of
link status structure. It could be requested by application using
rte_eth_link_get_nowait function.
- (Default: 10000 (10G))
+ (Default: 0xffffffff (Unknown))
+#. ``vectorized``:
+
+ It is used to specify whether virtio device prefers to use vectorized path.
+ Afterwards, dependencies of vectorized path will be checked in path
+ election.
+ (Default: 0 (disabled))
Virtio paths Selection and Usage
--------------------------------
both negotiated, this path will be selected.
#. Packed virtqueue in-order non-mergeable path: If in-order feature is negotiated and
Rx mergeable is not negotiated, this path will be selected.
+#. Packed virtqueue vectorized Rx path: If building and running environment support
+ AVX512 && in-order feature is negotiated && Rx mergeable is not negotiated &&
+ TCP_LRO Rx offloading is disabled && vectorized option enabled,
+ this path will be selected.
+#. Packed virtqueue vectorized Tx path: If building and running environment support
+ AVX512 && in-order feature is negotiated && vectorized option enabled,
+ this path will be selected.
Rx/Tx callbacks of each Virtio path
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packed virtqueue non-meregable path virtio_recv_pkts_packed virtio_xmit_pkts_packed
Packed virtqueue in-order mergeable path virtio_recv_mergeable_pkts_packed virtio_xmit_pkts_packed
Packed virtqueue in-order non-mergeable path virtio_recv_pkts_packed virtio_xmit_pkts_packed
+ Packed virtqueue vectorized Rx path virtio_recv_pkts_packed_vec virtio_xmit_pkts_packed
+ Packed virtqueue vectorized Tx path virtio_recv_pkts_packed virtio_xmit_pkts_packed_vec
============================================ ================================= ========================
Virtio paths Support Status from Release to Release
.. table:: Virtio Paths and Releases
- ============================================ ============= ============= =============
- Virtio paths 16.11 ~ 18.05 18.08 ~ 18.11 19.02 ~ 19.11
- ============================================ ============= ============= =============
- Split virtqueue mergeable path Y Y Y
- Split virtqueue non-mergeable path Y Y Y
- Split virtqueue vectorized Rx path Y Y Y
- Split virtqueue simple Tx path Y N N
- Split virtqueue in-order mergeable path Y Y
- Split virtqueue in-order non-mergeable path Y Y
- Packed virtqueue mergeable path Y
- Packed virtqueue non-mergeable path Y
- Packed virtqueue in-order mergeable path Y
- Packed virtqueue in-order non-mergeable path Y
- ============================================ ============= ============= =============
+ ============================================ ============= ============= ============= =======
+ Virtio paths 16.11 ~ 18.05 18.08 ~ 18.11 19.02 ~ 19.11 20.05 ~
+ ============================================ ============= ============= ============= =======
+ Split virtqueue mergeable path Y Y Y Y
+ Split virtqueue non-mergeable path Y Y Y Y
+ Split virtqueue vectorized Rx path Y Y Y Y
+ Split virtqueue simple Tx path Y N N N
+ Split virtqueue in-order mergeable path Y Y Y
+ Split virtqueue in-order non-mergeable path Y Y Y
+ Packed virtqueue mergeable path Y Y
+ Packed virtqueue non-mergeable path Y Y
+ Packed virtqueue in-order mergeable path Y Y
+ Packed virtqueue in-order non-mergeable path Y Y
+ Packed virtqueue vectorized Rx path Y
+ Packed virtqueue vectorized Tx path Y
+ ============================================ ============= ============= ============= =======
QEMU Support Status
~~~~~~~~~~~~~~~~~~~