From 0fb65d2afadad1f092788f5a4f251b09851b3ae7 Mon Sep 17 00:00:00 2001
From: Christian Trautman <ctrautma@redhat.com>
Date: Fri, 22 Jul 2016 15:54:18 -0400
Subject: 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>
---
 conf/02_vswitch.conf | 10 +++++-----
 conf/04_vnf.conf     | 11 ++++++++++-
 2 files changed, 15 insertions(+), 6 deletions(-)

(limited to 'conf')

diff --git a/conf/02_vswitch.conf b/conf/02_vswitch.conf
index 228ff057..cd2b8d26 100644
--- a/conf/02_vswitch.conf
+++ b/conf/02_vswitch.conf
@@ -88,12 +88,12 @@ VSWITCHD_DPDK_CONFIG = {
 # Note: VSPERF will automatically detect, which type of DPDK configuration should
 # be used.
 
-# To enable multi queue modify the below param to the number of queues.
-# 0 = disabled
-VSWITCH_MULTI_QUEUES = 0
+# To enable multi queue with dpdk modify the below param to the number of
+# queues for dpdk. 0 = disabled
+VSWITCH_DPDK_MULTI_QUEUES = 0
 
-# Use old style OVS Multi-queue startup. If testing versions of OVS 2.5.0 or
-# before, enable this setting to allow multi-queue to enable correctly.
+# Use old style OVS DPDK Multi-queue startup. If testing versions of OVS 2.5.0
+# or before, enable this setting to allow DPDK Multi-queue to enable correctly.
 OVS_OLD_STYLE_MQ = False
 
 # parameters passed to ovs-vswitchd in case that OvsVanilla is selected
diff --git a/conf/04_vnf.conf b/conf/04_vnf.conf
index 8069ef0d..05893fb8 100644
--- a/conf/04_vnf.conf
+++ b/conf/04_vnf.conf
@@ -119,9 +119,18 @@ GUEST_SMP = ['2', '2', '2', '2', '2', '2']
 GUEST_CORE_BINDING = [(6, 7), (9, 10), (11, 12), (13, 14), (15, 16), (17, 18)]
 
 # Queues per NIC inside guest for multi-queue configuration, requires switch
-# multi-queue to be enabled. Set to 0 for disabled.
+# multi-queue to be enabled for dpdk. Set to 0 for disabled. Can be enabled if
+# using Vanilla OVS without enabling switch multi-queue.
 GUEST_NIC_QUEUES = 0
 
+# Virtio-Net vhost thread CPU mapping. If using  vanilla OVS with virtio-net,
+# you can affinitize the vhost-net threads by enabling the below setting. There
+# is one vhost-net thread per port per queue so one guest with 2 queues will
+# have 4 vhost-net threads. If more threads are present than CPUs given, the
+# affinitize will overlap CPUs.
+VSWITCH_VHOST_NET_AFFINITIZATION = False
+VSWITCH_VHOST_CPU_MAP = [4,5,8,11]
+
 GUEST_START_TIMEOUT = 120
 GUEST_OVS_DPDK_DIR = '/root/ovs_dpdk'
 OVS_DPDK_SHARE = '/mnt/ovs_dpdk_share'
-- 
cgit