Hi Lin,
On 20/04/2022 13:55, 林晃(研发部 福州) wrote:
When we set a special value "-0" to pmd-auto-lb-rebal-interval, its
value is 0 not 1.
e.g.
ovs-vsctl set open_vswitch .
other_config:pmd-auto-lb-rebal-interval="-0"
2022-04-20T11:31:44.987Z|00526|dpif_netdev|INFO|PMD auto load balance
interval set to 0 mins
I don't see this issue locally. Not sure what I am missing.
# /root/ovs/utilities/ovs-vsctl --no-wait set open_vSwitch .
other_config:pmd-auto-lb-rebal-interval="-0"
# 2022-04-28T14:01:07Z|00359|dpif_netdev|INFO|PMD auto load balance
interval set to 1 mins
However, we can add a guard for other negative numbers for the ALB
params. What do you think?
So, fix pmd-auto-lb-rebal-interval's value to 1.
Fixes: 5bf84282482a ("Adding support for PMD auto load balancing")
Signed-off-by: Lin Huang <linhu...@ruijie.com.cn>
I'm not sure if you saw the robot ci report for this patch, but it is
not being applied/tested because of below [0]. I see the same error locally.
[0]
Test-Label: apply-robot
Test-Status: fail
http://patchwork.ozlabs.org/api/patches/1621541/
_apply and check: fail_
git-am:
error: corrupt patch at line 25
error: could not build fake ancestor
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 dpif-netdev : Fix ALB rebalance interval zero value.
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
---
lib/dpif-netdev.c | 8 ++++----
tests/alb.at | 10 ++++++++++
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 9f35713ef..6a5a9f740 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -4882,10 +4882,10 @@ dpif_netdev_set_config(struct dpif *dpif, const struct
smap *other_config)
rebalance_intvl = smap_get_int(other_config, "pmd-auto-lb-rebal-interval",
ALB_REBALANCE_INTERVAL);
-
- /* Input is in min, convert it to msec. */
- rebalance_intvl =
- rebalance_intvl ? rebalance_intvl * MIN_TO_MSEC : MIN_TO_MSEC;
+ if (rebalance_intvl < ALB_REBALANCE_INTERVAL) {
+ rebalance_intvl = ALB_REBALANCE_INTERVAL;
+ }
+ rebalance_intvl *= MIN_TO_MSEC;
if (pmd_alb->rebalance_intvl != rebalance_intvl) {
pmd_alb->rebalance_intvl = rebalance_intvl;
diff --git a/tests/alb.at b/tests/alb.at
index 2bef06f39..d105b72bf 100644
--- a/tests/alb.at
+++ b/tests/alb.at
@@ -197,6 +197,16 @@ get_log_next_line_num
AT_CHECK([ovs-vsctl set open_vswitch .
other_config:pmd-auto-lb-rebal-interval="0"])
CHECK_ALB_PARAM([interval], [1 mins], [+$LINENUM])
+# Set new value
+get_log_next_line_num
+AT_CHECK([ovs-vsctl set open_vswitch .
other_config:pmd-auto-lb-rebal-interval="100"])
+CHECK_ALB_PARAM([interval], [100 mins], [+$LINENUM])
+
+# Set below min value
+get_log_next_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
--
2.27.0
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev