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

Ben Pfaff blp at nicira.com
Mon Jan 7 20:27:12 UTC 2013


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