diff options
author | Christian Trautman <ctrautma@redhat.com> | 2016-07-22 15:54:18 -0400 |
---|---|---|
committer | Maryam Tahhan <maryam.tahhan@intel.com> | 2016-08-24 08:43:16 +0000 |
commit | 0fb65d2afadad1f092788f5a4f251b09851b3ae7 (patch) | |
tree | 33a8fa5f6dd575d30bc748deb137433a53031218 /docs | |
parent | bd8712a917d9a0c7272506fd85816f857c32529e (diff) |
Vanilla_Multi_Queue: Add vanilla ovs multi-queue functionality
Adds multi-queue for vanilla OVS using virtio-net.
TunTap ports will use multi_queue parameter when ports are
created/deleted if guest nic queues are enabled and
vswitch is ovs vanilla. Virtio net will now add guest nic
queues to qemu command line if appropriate.
Reworked multi-queue documentation to reflect these changes.
Adds vhost net thread affinitization which is recommended
when performing vanilla ovs multi-queue.
Guests will require ethtool if using l2fwd or linux bridge
as the loopback application when vanilla ovs multi-queue
is enabled.
Modified dpdk setting in vswitch conf to be better worded
for separation from vanilla ovs multi-queue.
Updated release and installation doc for new vloop image
that includes required ethtool utility.
JIRA: VSPERF-373
Change-Id: Idb550515190b1a93390308c11f54da368f962512
Signed-off-by: Christian Trautman <ctrautma@redhat.com>
Diffstat (limited to 'docs')
-rwxr-xr-x | docs/configguide/installation.rst | 1 | ||||
-rw-r--r-- | docs/release/NEWS.rst | 2 | ||||
-rwxr-xr-x | docs/userguide/testusage.rst | 51 |
3 files changed, 35 insertions, 19 deletions
diff --git a/docs/configguide/installation.rst b/docs/configguide/installation.rst index 2dabfc7f..3933ee55 100755 --- a/docs/configguide/installation.rst +++ b/docs/configguide/installation.rst @@ -150,6 +150,7 @@ running any of the above. For example: .. _a link: http://www.softwarecollections.org/en/scls/rhscl/python33/ .. _virtualenv: https://virtualenv.readthedocs.org/en/latest/ +.. _vloop-vnf-ubuntu-14.04_20160823: http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160823.qcow2 .. _vloop-vnf-ubuntu-14.04_20160804: http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160804.qcow2 .. _vloop-vnf-ubuntu-14.04_20160303: http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160303.qcow2 .. _vloop-vnf-ubuntu-14.04_20151216: http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20151216.qcow2 diff --git a/docs/release/NEWS.rst b/docs/release/NEWS.rst index a259870b..e1a9fa3b 100644 --- a/docs/release/NEWS.rst +++ b/docs/release/NEWS.rst @@ -5,6 +5,8 @@ OPNFV D Release =============== * Remove support for vhost cuse +* Add Vanilla OVS Multi-queue with non testpmd options +* Add support for Multi-queue with OVS 2.5.0 or less OPNFV Colorado Release ====================== diff --git a/docs/userguide/testusage.rst b/docs/userguide/testusage.rst index 9eeddc27..c55b5a2c 100755 --- a/docs/userguide/testusage.rst +++ b/docs/userguide/testusage.rst @@ -427,30 +427,25 @@ Multi-Queue Configuration VSPerf currently supports multi-queue with the following limitations: - 1. Execution of pvp/pvvp tests require testpmd as the loopback if multi-queue - is enabled at the guest. - - 2. Requires QemuDpdkVhostUser as the vnf. - - 3. Requires switch to be set to OvsDpdkVhost. - - 4. Requires QEMU 2.5 or greater and any OVS version higher than 2.5. The - default upstream package versions installed by VSPerf satisfy this + 1. Requires QEMU 2.5 or greater and any OVS version higher than 2.5. The + default upstream package versions installed by VSPerf satisfies this requirement. - 5. If using OVS versions 2.5.0 or less enable old style multi-queue as shown in - the ''02_vswitch.conf'' file. + 2. Guest image must have ethtool utility installed if using l2fwd or linux + bridge inside guest for loopback. + + 3. If using OVS versions 2.5.0 or less enable old style multi-queue as shown + in the ''02_vswitch.conf'' file. .. code-block:: console OVS_OLD_STYLE_MQ = True -To enable multi-queue modify the ''02_vswitch.conf'' file to enable multi-queue -on the switch. +To enable multi-queue for dpdk modify the ''02_vswitch.conf'' file. .. code-block:: console - VSWITCH_MULTI_QUEUES = 2 + VSWITCH_DPDK_MULTI_QUEUES = 2 **NOTE:** you should consider using the switch affinity to set a pmd cpu mask that can optimize your performance. Consider the numa of the NIC in use if this @@ -471,8 +466,12 @@ To enable multi-queue on the guest modify the ''04_vnf.conf'' file. Enabling multi-queue at the guest will add multiple queues to each NIC port when qemu launches the guest. -Testpmd should be configured to take advantage of multi-queue on the guest. This -can be done by modifying the ''04_vnf.conf'' file. +In case of Vanilla OVS, multi-queue is enabled on the tuntap ports and nic +queues will be enabled inside the guest with ethtool. Simply enabling the +multi-queue on the guest is sufficient for Vanilla OVS multi-queue. + +Testpmd should be configured to take advantage of multi-queue on the guest if +using DPDKVhostUser. This can be done by modifying the ''04_vnf.conf'' file. .. code-block:: console @@ -485,9 +484,23 @@ can be done by modifying the ''04_vnf.conf'' file. **NOTE:** The guest SMP cores must be configured to allow for testpmd to use the optimal number of cores to take advantage of the multiple guest queues. -**NOTE:** For optimal performance guest SMPs should be on the same numa as the -NIC in use if possible/applicable. Testpmd should be assigned at least -(nb_cores +1) total cores with the cpu mask. +In case of using Vanilla OVS and qemu virtio-net you can increase performance +by binding vhost-net threads to cpus. This can be done by enabling the affinity +in the ''04_vnf.conf'' file. This can be done to non multi-queue enabled +configurations as well as there will be 2 vhost-net threads. + + .. code-block:: console + + VSWITCH_VHOST_NET_AFFINITIZATION = True + + VSWITCH_VHOST_CPU_MAP = [4,5,8,11] + +**NOTE:** This method of binding would require a custom script in a real +environment. + +**NOTE:** For optimal performance guest SMPs and/or vhost-net threads should be +on the same numa as the NIC in use if possible/applicable. Testpmd should be +assigned at least (nb_cores +1) total cores with the cpu mask. Executing Packet Forwarding tests ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |