[ovs-dev] [PATCH 1/3] bond: Change rebalance ratio to be more fair

Ben Pfaff blp at nicira.com
Mon Jan 7 22:10:10 UTC 2013


OK, thanks.  I'd still like some comments from Ethan or another person
who understands the bonding code.

On Mon, Jan 07, 2013 at 10:03:00PM +0000, Zoltan Kiss wrote:
> Oops, I've missed the "#include <math.h>" from this second version
> of the patch. To avoid warnings, I will resend it.
> 
> Zoli
> 
> On 07/01/13 20:27, Ben Pfaff wrote:
> >Ethan, do you have any thoughts about this patch?  It seems
> >reasonable, but I'd like another set of eyes on it before I apply it.
> >
> >On Sat, Jan 05, 2013 at 09:41:19PM +0000, Zoltan Kiss wrote:
> >>The old algorithm tries to converge to 0, despite it would mean a very
> >>unbalanced situation. 1 is a more desirable goal.
> >>
> >>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 2c59f9d..87962de 100644
> >>--- a/lib/bond.c
> >>+++ b/lib/bond.c
> >>@@ -771,8 +771,9 @@ 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 ( (old_ratio - new_ratio > 0.1) &&
> >>+             (fabs(new_ratio-1) < fabs(old_ratio-1)) ) {
> >>+            /* Ideal ratio is 1, move it if the new ratio is closer to it. */
> >>              return e;
> >>          }
> >>      }
> 



More information about the dev mailing list