Not sure why some names seemed dropped out of CC. Re-adding. On 08/06/2021 13:47, Kevin Traynor wrote: > Ping > > On 05/05/2021 14:34, Kevin Traynor wrote: >> Ping. Any objection to adding these unit tests? >> >> On 16/03/2021 15:45, Kevin Traynor wrote: >>> These tests focus on enabling/disabling and user parameters. >>> >>> Co-Authored-by: David Marchand <david.march...@redhat.com> >>> Signed-off-by: David Marchand <david.march...@redhat.com> >>> Signed-off-by: Kevin Traynor <ktray...@redhat.com> >>> >>> --- >>> v2: >>> - Remove above max documented interval test >>> - Add David's code to combine param checks and add as co-author >>> --- >>> tests/alb.at | 218 +++++++++++++++++++++++++++++++++++++++++++++ >>> tests/automake.mk | 1 + >>> tests/testsuite.at | 1 + >>> 3 files changed, 220 insertions(+) >>> create mode 100644 tests/alb.at >>> >>> diff --git a/tests/alb.at b/tests/alb.at >>> new file mode 100644 >>> index 000000000..0ea1bbdd1 >>> --- /dev/null >>> +++ b/tests/alb.at >>> @@ -0,0 +1,218 @@ >>> +AT_BANNER([PMD Auto Load Balance]) >>> + >>> +m4_divert_push([PREPARE_TESTS]) >>> + >>> +get_log_line_num () { >>> + LINENUM=$(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]]) >>> +} >>> + >>> +m4_divert_pop([PREPARE_TESTS]) >>> + >>> +m4_define([DUMMY_NUMA], [--dummy-numa="0,0"]) >>> + >>> +dnl CHECK_ALB_PARAM([param], [value], [+line]) >>> +dnl >>> +dnl Waits for ALB logs for 'param' in logs and checks if value matches >>> +dnl 'value'. Checking starts from line number 'line' in ovs-vswithd.log. >>> +m4_define([CHECK_ALB_PARAM], [ >>> + line_st=$3 >>> + if [[ -z "$line_st" ]] >>> + then >>> + line_st="+0" >>> + fi >>> + OVS_WAIT_UNTIL([tail -n $line_st ovs-vswitchd.log | grep "PMD auto >>> load balance $1 set to"]) >>> + AT_CHECK([tail -n $line_st ovs-vswitchd.log | sed -n "s#.*\(PMD auto >>> load balance $1 set to.*\)#\1#p" | tail -1], [0], [dnl >>> +PMD auto load balance $1 set to $2 >>> +]) >>> +]) >>> + >>> +AT_SETUP([ALB - default state]) >>> +OVS_VSWITCHD_START >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is disabled" ovs-vswitchd.log]) >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> +AT_SETUP([ALB - enable/disable]) >>> +OVS_VSWITCHD_START([add-port br0 p0 \ >>> + -- set Interface p0 type=dummy-pmd options:n_rxq=3 \ >>> + -- set Open_vSwitch . other_config:pmd-cpu-mask=3 \ >>> + -- set open_vswitch . other_config:pmd-auto-lb="true"], >>> + [], [], [DUMMY_NUMA]) >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is enabled" ovs-vswitchd.log]) >>> + >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb="false"]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> + >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb="true"]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is enabled"]) >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> +AT_SETUP([ALB - min num PMD/RxQ]) >>> +OVS_VSWITCHD_START([add-port br0 p0 \ >>> + -- set Interface p0 type=dummy-pmd options:n_rxq=2 \ >>> + -- set Open_vSwitch . other_config:pmd-cpu-mask=1 \ >>> + -- set open_vswitch . other_config:pmd-auto-lb="true"], >>> + [], [], [DUMMY_NUMA]) >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is disabled" ovs-vswitchd.log]) >>> + >>> +# Add more PMD >>> +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x3]) >>> +OVS_WAIT_UNTIL([grep "There are 2 pmd threads on numa node" >>> ovs-vswitchd.log]) >>> + >>> +# Add one more rxq to have 2 rxq on a PMD >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set interface p0 options:n_rxq=3]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is enabled"]) >>> + >>> +# Reduce PMD >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x1]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> + >>> +# Check logs when try to enable but min PMD/RxQ prevents >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb="false"]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb="true"]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> +AT_SETUP([ALB - PMD/RxQ assignment type]) >>> +OVS_VSWITCHD_START([add-port br0 p0 \ >>> + -- set Interface p0 type=dummy-pmd options:n_rxq=3 \ >>> + -- set Open_vSwitch . other_config:pmd-cpu-mask=3 \ >>> + -- set open_vswitch . other_config:pmd-auto-lb="true"], >>> + [], [], [DUMMY_NUMA]) >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is enabled" ovs-vswitchd.log]) >>> + >>> +# Change assignment type >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set Open_vSwitch . >>> other_config:pmd-rxq-assign=roundrobin]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> + >>> +# Change back assignment type >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:pmd-rxq-assign=cycles]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is enabled"]) >>> + >>> +# Check logs when try to enable but assignment prevents >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb="false"]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> +AT_CHECK([ovs-vsctl set Open_vSwitch . >>> other_config:pmd-rxq-assign=roundrobin]) >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . other_config:pmd-auto-lb="true"]) >>> +OVS_WAIT_UNTIL([tail -n +$LINENUM ovs-vswitchd.log | grep "PMD auto load >>> balance is disabled"]) >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> +AT_SETUP([ALB - interval param]) >>> +OVS_VSWITCHD_START >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is disabled" ovs-vswitchd.log]) >>> + >>> +# Check default >>> +CHECK_ALB_PARAM([interval], [1 mins], []) >>> + >>> +# Set new value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-rebal-interval="10"]) >>> +CHECK_ALB_PARAM([interval], [10 mins], [+$LINENUM]) >>> + >>> +# Set min value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-rebal-interval="1"]) >>> +CHECK_ALB_PARAM([interval], [1 mins], [+$LINENUM]) >>> + >>> +# Set max value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-rebal-interval="20000"]) >>> +CHECK_ALB_PARAM([interval], [20000 mins], [+$LINENUM]) >>> + >>> +# Set below min value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-rebal-interval="0"]) >>> +CHECK_ALB_PARAM([interval], [1 mins], [+$LINENUM]) >>> + >>> +# No check for above max as it is only a documented max value and not a >>> hard limit >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> +AT_SETUP([ALB - improvement param]) >>> +OVS_VSWITCHD_START >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is disabled" ovs-vswitchd.log]) >>> + >>> +# Check default >>> +CHECK_ALB_PARAM([improvement threshold], [25%], []) >>> + >>> +# Set new value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-improvement-threshold=60]) >>> +CHECK_ALB_PARAM([improvement threshold], [60%], [+$LINENUM]) >>> + >>> +# Set min value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-improvement-threshold=0]) >>> +CHECK_ALB_PARAM([improvement threshold], [0%], [+$LINENUM]) >>> + >>> +# Set below min value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-improvement-threshold=-1]) >>> +CHECK_ALB_PARAM([improvement threshold], [25%], [+$LINENUM]) >>> + >>> +# Set max value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-improvement-threshold=100]) >>> +CHECK_ALB_PARAM([improvement threshold], [100%], [+$LINENUM]) >>> + >>> +# Set above max value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-improvement-threshold=101]) >>> +CHECK_ALB_PARAM([improvement threshold], [25%], [+$LINENUM]) >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> + >>> +AT_SETUP([ALB - load param]) >>> +OVS_VSWITCHD_START >>> +OVS_WAIT_UNTIL([grep "PMD auto load balance is disabled" ovs-vswitchd.log]) >>> + >>> +# Check default >>> +CHECK_ALB_PARAM([load threshold], [95%], []) >>> + >>> +# Set to new value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-load-threshold=70]) >>> +CHECK_ALB_PARAM([load threshold], [70%], [+$LINENUM]) >>> + >>> +# Set to min value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-load-threshold=0]) >>> +CHECK_ALB_PARAM([load threshold], [0%], [+$LINENUM]) >>> + >>> +# Set to below min >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-load-threshold=-1]) >>> +CHECK_ALB_PARAM([load threshold], [95%], [+$LINENUM]) >>> + >>> +# Set to max >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-load-threshold=100]) >>> +CHECK_ALB_PARAM([load threshold], [100%], [+$LINENUM]) >>> + >>> +# Set above max value >>> +get_log_line_num >>> +AT_CHECK([ovs-vsctl set open_vswitch . >>> other_config:pmd-auto-lb-load-threshold=101]) >>> +CHECK_ALB_PARAM([load threshold], [95%], [+$LINENUM]) >>> + >>> +OVS_VSWITCHD_STOP >>> +AT_CLEANUP >>> diff --git a/tests/automake.mk b/tests/automake.mk >>> index 44a65849c..b9e841843 100644 >>> --- a/tests/automake.mk >>> +++ b/tests/automake.mk >>> @@ -63,4 +63,5 @@ TESTSUITE_AT = \ >>> tests/jsonrpc-py.at \ >>> tests/pmd.at \ >>> + tests/alb.at \ >>> tests/tunnel.at \ >>> tests/tunnel-push-pop.at \ >>> diff --git a/tests/testsuite.at b/tests/testsuite.at >>> index 73699918d..58adfa09c 100644 >>> --- a/tests/testsuite.at >>> +++ b/tests/testsuite.at >>> @@ -61,4 +61,5 @@ m4_include([tests/ofproto.at]) >>> m4_include([tests/dpif-netdev.at]) >>> m4_include([tests/pmd.at]) >>> +m4_include([tests/alb.at]) >>> m4_include([tests/dpctl.at]) >>> m4_include([tests/ofproto-dpif.at]) >>> >> > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev >
_______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev