Framework: GSO test 51/31351/5
authorpmikus <pmikus@cisco.com>
Thu, 18 Feb 2021 14:52:31 +0000 (14:52 +0000)
committerPeter Mikus <pmikus@cisco.com>
Fri, 19 Feb 2021 09:47:26 +0000 (09:47 +0000)
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I874568aebbe50c38e634438eb1201ca737bd18ad

resources/libraries/python/CpuUtils.py
resources/libraries/robot/shared/default.robot
tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3.robot
tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3.robot
tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3.robot
tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3.robot

index f261f94..70177f5 100644 (file)
@@ -445,4 +445,4 @@ class CpuUtils:
 
         return CpuUtils.cpu_slice_of_list_per_node(
             node, cpu_node=cpu_node, skip_cnt=skip_cnt, cpu_cnt=cpu_cnt,
-            smt_used=smt_used)
+            smt_used=False)
index 853f567..1364c16 100644 (file)
 | | Set Test Variable | ${txd_count_int}
 | | Set Test Variable | ${rxq_count_int}
 
+| Add worker threads for GSO tests to all DUTs
+| | [Documentation] | Setup worker threads in vpp startup configuration on all
+| | ... | DUTs. Based on the SMT configuration of DUT if enabled keyword will
+| | ... | automatically map also the sibling logical cores.
+| | ... | Keyword will automatically set the appropriate test TAGs in format
+| | ... | mTnC, where m=logical_core_count and n=physical_core_count.
+| | ... | RXQ are computed automatically by dividing thread count with number 2
+| | ... | (TODO: Add division by actual number of interfaces). User can manually
+| | ... | override RX, RXD, TXD parameters if needed.
+| |
+| | ... | *Arguments:*
+| | ... | - phy_cores - Number of physical cores to use. Type: integer
+| | ... | - rx_queues - Number of RX queues. Type: integer
+| | ... | - rxd - Number of RX descriptors. Type: integer
+| | ... | - txd - Number of TX descriptors. Type: integer
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Add worker threads for GSO tests to all DUTs \| ${1} \| ${1} \|
+| |
+| | [Arguments] | ${phy_cores} | ${rx_queues}=${None} | ${rxd}=${None}
+| | ... | ${txd}=${None}
+| |
+| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
+| | ${thr_count_int} | Convert to Integer | ${phy_cores}
+| | ${rxd_count_int}= | Set variable | ${rxd}
+| | ${txd_count_int}= | Set variable | ${txd}
+| | FOR | ${dut} | IN | @{duts}
+| | | ${numa}= | Get interfaces numa node
+| | | ... | ${nodes['${dut}']} | @{${dut}_pf_keys}
+| | | ${smt_used}= | Set variable | ${False}
+| | | ${skip_cnt}= | Set variable | ${CPU_CNT_SYSTEM}
+| | | ${cpu_main}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
+| | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${CPU_CNT_MAIN}
+| | | ${skip_cnt}= | Evaluate | ${CPU_CNT_SYSTEM} + ${CPU_CNT_MAIN}
+| | | ${cpu_wt}= | Run Keyword If | ${cpu_count_int} > 0 |
+| | | ... | Cpu list per node str | ${nodes['${dut}']} | ${numa}
+| | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${cpu_count_int}
+| | | ... | smt_used=${smt_used}
+| | | ${thr_count_int}= | Run Keyword If | ${smt_used}
+| | | ... | Evaluate | int(${cpu_count_int}*2)
+| | | ... | ELSE | Set variable | ${thr_count_int}
+| | | ${rxq_ratio} = | Get Variable Value | \${rxq_ratio} | ${2}
+| | | ${rxq_count_int}= | Run Keyword If | ${rx_queues}
+| | | ... | Set variable | ${rx_queues}
+| | | ... | ELSE | Evaluate | int(${thr_count_int}/${rxq_ratio})
+| | | ${rxq_count_int}= | Run Keyword If | ${rxq_count_int} == 0
+| | | ... | Set variable | ${1}
+| | | ... | ELSE | Set variable | ${rxq_count_int}
+| | | Run Keyword | ${dut}.Add CPU Main Core | ${cpu_main}
+| | | Run Keyword If | ${cpu_count_int} > 0
+| | | ... | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
+| | | Run Keyword If | ${smt_used}
+| | | ... | Run Keyword | ${dut}.Add Buffers Per Numa | ${215040} | ELSE
+| | | ... | Run Keyword | ${dut}.Add Buffers Per Numa | ${107520}
+| | | Run Keyword If | ${thr_count_int} > 1
+| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
+| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
+| | END
+| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_main}
+| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_wt}
+| | Set Test Variable | ${smt_used}
+| | Set Test Variable | ${cpu_alloc_str}
+| | Set Test Variable | ${cpu_count_int}
+| | Set Test Variable | ${thr_count_int}
+| | Set Test Variable | ${rxd_count_int}
+| | Set Test Variable | ${txd_count_int}
+| | Set Test Variable | ${rxq_count_int}
+
 | Add DPDK VLAN strip offload switch off between DUTs
 | | [Documentation]
 | | ... | Add VLAN Strip Offload switch off on PCI devices between DUTs to VPP
index 91141ce..1cbb7f8 100644 (file)
@@ -86,7 +86,7 @@
 | | Set Test Variable | \${rxq_ratio} | ${1}
 | |
 | | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Add worker threads for GSO tests to all DUTs | ${phy_cores} | ${rxq}
 | | And Pre-initialize layer driver | ${nic_driver}
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
index 31ece18..d5ba838 100644 (file)
@@ -86,7 +86,7 @@
 | | Set Test Variable | \${rxq_ratio} | ${1}
 | |
 | | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Add worker threads for GSO tests to all DUTs | ${phy_cores} | ${rxq}
 | | And Pre-initialize layer driver | ${nic_driver}
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
index 8495040..deb3fef 100644 (file)
@@ -90,7 +90,7 @@
 | | Set Test Variable | \${rxq_ratio} | ${1}
 | |
 | | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Add worker threads for GSO tests to all DUTs | ${phy_cores} | ${rxq}
 | | And Pre-initialize layer driver | ${nic_driver}
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver} | validate=${False}
index c31097e..9bd28c5 100644 (file)
@@ -90,7 +90,7 @@
 | | Set Test Variable | \${rxq_ratio} | ${1}
 | |
 | | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Add worker threads for GSO tests to all DUTs | ${phy_cores} | ${rxq}
 | | And Pre-initialize layer driver | ${nic_driver}
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver} | validate=${False}