[ovs-dev] [PATCH 2/2] bond: Change rebalance ratio to be more fair
Zoltan Kiss
zoltan.kiss at citrix.com
Thu Dec 20 21:55:06 UTC 2012
The old algorithm tries to converge to 0, despite it would mean a very
unbalanced situation. 1 is a more desirable goal. Fortunately rebalancing never
worked, so this never caused a problem. But my previous patch needs it.
It was tested together with my previous patch.
Signed-off-by: Zoltan Kiss <zoltan.kiss at citrix.com>
---
lib/bond.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/bond.c b/lib/bond.c
index ba98fff..2149653 100644
--- a/lib/bond.c
+++ b/lib/bond.c
@@ -21,6 +21,7 @@
#include <limits.h>
#include <stdint.h>
#include <stdlib.h>
+#include <math.h>
#include "coverage.h"
#include "dynamic-string.h"
@@ -771,8 +772,8 @@ choose_entry_to_migrate(const struct bond_slave *from, uint64_t to_tx_bytes)
delta = e->tx_bytes;
old_ratio = (double)from->tx_bytes / to_tx_bytes;
new_ratio = (double)(from->tx_bytes - delta) / (to_tx_bytes + delta);
- if (old_ratio - new_ratio > 0.1) {
- /* Would decrease the ratio, move it. */
+ if ( fabs(new_ratio-1) < fabs(old_ratio-1) ) {
+ /* Ideal ratio is 1, move it if the new ratio is closer to it. */
return e;
}
}
--
1.8.0
More information about the dev
mailing list