aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2019-04-08 12:42:08 +0000
committerPeter Mikus <pmikus@cisco.com>2019-04-24 13:46:44 +0000
commit0b0b14fb00fbaab5eb2745657d741084fe2e1de2 (patch)
treef46f0696fa142a5d8d01a137184d2ee9e96f8cfe
parent91f2cb2b789c8cfcaa7fe3d7617fe6b8230df22a (diff)
FIX: Large number of interfaces and worker threads
Add buffers-per-numa (previously num-mbuf) Change-Id: Iad0863668a65b1595630d49a047d591659c7bba5 Signed-off-by: Peter Mikus <pmikus@cisco.com>
-rw-r--r--resources/libraries/python/KubernetesUtils.py2
-rw-r--r--resources/libraries/python/VppConfigGenerator.py18
-rw-r--r--resources/libraries/robot/shared/default.robot12
3 files changed, 14 insertions, 18 deletions
diff --git a/resources/libraries/python/KubernetesUtils.py b/resources/libraries/python/KubernetesUtils.py
index c3ebb4c095..e932492e05 100644
--- a/resources/libraries/python/KubernetesUtils.py
+++ b/resources/libraries/python/KubernetesUtils.py
@@ -493,7 +493,7 @@ class KubernetesUtils(object):
vpp_config.add_dpdk_no_tx_checksum_offload()
vpp_config.add_dpdk_dev_default_rxq(kwargs['rxq_count_int'])
vpp_config.add_dpdk_dev(kwargs['if1'], kwargs['if2'])
- vpp_config.add_dpdk_num_mbufs(kwargs['num_mbufs_int'])
+ vpp_config.add_buffers_per_numa(kwargs['buffers_per_numa'])
# We will pop first core from list to be main core
vpp_config.add_cpu_main_core(str(cpuset_main.pop(0)))
# if this is not only core in list, the rest will be used as workers.
diff --git a/resources/libraries/python/VppConfigGenerator.py b/resources/libraries/python/VppConfigGenerator.py
index 154e2e9095..350e1c0881 100644
--- a/resources/libraries/python/VppConfigGenerator.py
+++ b/resources/libraries/python/VppConfigGenerator.py
@@ -220,6 +220,15 @@ class VppConfigGenerator(object):
path = ['api-segment', 'api-size']
self.add_config_item(self._nodeconfig, value, path)
+ def add_buffers_per_numa(self, value):
+ """Increase number of buffers allocated.
+
+ :param value: Number of buffers allocated.
+ :type value: int
+ """
+ path = ['buffers', 'buffers-per-numa']
+ self.add_config_item(self._nodeconfig, value, path)
+
def add_dpdk_dev(self, *devices):
"""Add DPDK PCI device configuration.
@@ -343,15 +352,6 @@ class VppConfigGenerator(object):
path = ['dpdk', 'log-level']
self.add_config_item(self._nodeconfig, value, path)
- def add_dpdk_num_mbufs(self, value):
- """Add DPDK number of I/O buffers.
-
- :param value: Number of I/O buffers.
- :type value: int
- """
- path = ['dpdk', 'num-mbufs']
- self.add_config_item(self._nodeconfig, value, path)
-
def add_dpdk_no_pci(self):
"""Add DPDK no-pci."""
path = ['dpdk', 'no-pci']
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index dd4fb63c3f..579577cb56 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -184,7 +184,6 @@
| | ...
| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
| | ${thr_count_int} | Convert to Integer | ${phy_cores}
-| | ${num_mbufs_int} | Convert to Integer | 16384
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
| | | ${if1_status} | ${value}= | Run Keyword And Ignore Error
@@ -213,13 +212,12 @@
| | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
| | | ... | Set variable | ${1}
| | | ... | ELSE | Set variable | ${rxq_count_int}
-| | | ${num_mbufs_int}= | Evaluate | int(${num_mbufs_int}*${rxq_count_int})
| | | Run keyword | ${dut}.Add CPU Main Core | ${cpu_main}
| | | Run keyword | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
| | | Run keyword | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int}
-# Temporarily desabling due to API changes:
-# https://gerrit.fd.io/r/#/c/16638/
-#| | | Run keyword | ${dut}.Add DPDK Num Mbufs | ${num_mbufs_int}
+# For now there is no way to easily predict the number of buffers. Statically
+# doing maximum amount of buffers allowed by DPDK.
+| | | Run keyword | ${dut}.Add Buffers Per Numa | ${215040}
| | | Run keyword if | ${thr_count_int} > 1
| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
@@ -246,7 +244,6 @@
| | ...
| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
| | ${thr_count_int} | Convert to Integer | ${phy_cores}
-| | ${num_mbufs_int} | Convert to Integer | 16384
| | ${duts}= | Get Matches | ${nodes} | DUT*
| | :FOR | ${dut} | IN | @{duts}
| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']}
@@ -263,11 +260,10 @@
| | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
| | | ... | Set variable | ${1}
| | | ... | ELSE | Set variable | ${rxq_count_int}
-| | | ${num_mbufs_int}= | Evaluate | int(${num_mbufs_int}*${rxq_count_int})
| | | ${config}= | Run keyword | Create Kubernetes VSWITCH startup config
| | | ... | node=${nodes['${dut}']} | phy_cores=${phy_cores}
| | | ... | cpu_node=${numa} | jumbo=${jumbo} | rxq_count_int=${rxq_count_int}
-| | | ... | num_mbufs_int=${num_mbufs_int}
+| | | ... | buffers_per_numa=${215040}
| | | ... | filename=/tmp/vswitch.conf | if1=${if1_pci} | if2=${if2_pci}
| | | Run keyword if | ${thr_count_int} > 1
| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD