Ensure that if there are no local numa pmd cores available that pmd cores from all other non-local numas will be used.
Signed-off-by: Kevin Traynor <ktray...@redhat.com> --- tests/pmd.at | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/tests/pmd.at b/tests/pmd.at index a2f9d34a2..91af5bbd6 100644 --- a/tests/pmd.at +++ b/tests/pmd.at @@ -200,5 +200,5 @@ OVS_VSWITCHD_STOP AT_CLEANUP -AT_SETUP([PMD - pmd-cpu-mask - NUMA]) +AT_SETUP([PMD - pmd-cpu-mask - dual NUMA]) OVS_VSWITCHD_START([add-port br0 p0 -- set Interface p0 type=dummy-pmd options:n_rxq=8 options:numa_id=1 -- set Open_vSwitch . other_config:pmd-cpu-mask=1], [], [], [--dummy-numa 1,1,0,0]) @@ -360,4 +360,93 @@ OVS_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([PMD - pmd-cpu-mask - multi NUMA]) +OVS_VSWITCHD_START([add-port br0 p0 \ + -- set Interface p0 type=dummy-pmd options:n_rxq=4 \ + -- set Interface p0 options:numa_id=0 \ + -- set Open_vSwitch . other_config:pmd-cpu-mask=0xf \ + -- set open_vswitch . other_config:pmd-rxq-assign=cycles], + [], [], [--dummy-numa 1,2,1,2]) + +TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])+1)) +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:pmd-rxq-assign=group]) + +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Performing pmd to rx queue assignment using group algorithm"]) +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "There's no available (non-isolated) pmd thread on numa node 0."]) + +# check pmds from both non-local numas are used +AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 0 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 1 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 2 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 3 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +]) + +TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])+1)) +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:pmd-rxq-assign=cycles]) + +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Performing pmd to rx queue assignment using cycles algorithm"]) +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "There's no available (non-isolated) pmd thread on numa node 0."]) + +# check pmds from both non-local numas are used +AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 0 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 1 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 2 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 3 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +]) + +TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])+1)) +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:pmd-rxq-assign=roundrobin]) + +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Performing pmd to rx queue assignment using roundrobin algorithm"]) +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "There's no available (non-isolated) pmd thread on numa node 0."]) + +# check pmds from both non-local numas are used +AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], [0], [dnl +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 0 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 1 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 2 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +pmd thread numa_id <cleared> core_id <cleared>: + isolated : false + port: p0 queue-id: 3 (enabled) pmd usage: NOT AVAIL + overhead: NOT AVAIL +]) + +OVS_VSWITCHD_STOP +AT_CLEANUP + AT_SETUP([PMD - stats]) OVS_VSWITCHD_START([add-port br0 p0 -- set Interface p0 ofport_request=7 type=dummy-pmd options:n_rxq=4], -- 2.34.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev