[ovs-dev] [PATCH v5 2/3] dpif-netdev: Add more logs to PMD auto load balance parameters.

Flavio Leitner fbl at sysclose.org
Fri Dec 18 21:54:57 UTC 2020


On Fri, Dec 18, 2020 at 05:51:51PM +0000, Kevin Traynor wrote:
> Previously if PMD auto load balance was disabled, updates to
> parameters did not get logged.
> 
> Add logs so that if there are any changes to the parameters,
> the change is shown as well as the current enabled/disabled
> state of PMD auto load balance.

Well, I was expecting the parameter change log messages to
come together with the patch adding those parameters.

Then this patch would be about adding the set_pmd_auto_lb()
which seems to be an addition improvement to me.

What do you think?

fbl


> 
> Also, show the parameters when PMD auto load balance is changed
> to be enabled.
> 
> e.g.
> |dpif_netdev|INFO|PMD auto load balance pmd load threshold changed to 70%
> |dpif_netdev|INFO|PMD auto load balance is disabled
> 
> Signed-off-by: Kevin Traynor <ktraynor at redhat.com>
> Acked-by: David Marchand <david.marchand at redhat.com>
> ---
>  lib/dpif-netdev.c | 30 +++++++++++++++++++++++-------
>  1 file changed, 23 insertions(+), 7 deletions(-)
> 
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index eb19a3afc..9c24b58d2 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -4202,9 +4202,10 @@ dpif_netdev_operate(struct dpif *dpif, struct dpif_op **ops, size_t n_ops,
>  /* Enable or Disable PMD auto load balancing. */
>  static void
> -set_pmd_auto_lb(struct dp_netdev *dp)
> +set_pmd_auto_lb(struct dp_netdev *dp, bool always_log)
>  {
>      unsigned int cnt = 0;
>      struct dp_netdev_pmd_thread *pmd;
>      struct pmd_auto_lb *pmd_alb = &dp->pmd_alb;
> +    uint8_t rebalance_load_thresh;
>  
>      bool enable_alb = false;
> @@ -4233,10 +4234,16 @@ set_pmd_auto_lb(struct dp_netdev *dp)
>                      pmd_alb->auto_lb_requested;
>  
> -    if (pmd_alb->is_enabled != enable_alb) {
> +    if (pmd_alb->is_enabled != enable_alb || always_log) {
>          pmd_alb->is_enabled = enable_alb;
>          if (pmd_alb->is_enabled) {
> +            atomic_read_relaxed(&pmd_alb->rebalance_load_thresh,
> +                                &rebalance_load_thresh);
>              VLOG_INFO("PMD auto load balance is enabled "
> -                      "(with rebalance interval:%"PRIu64" msec)",
> -                       pmd_alb->rebalance_intvl);
> +                      "interval %"PRIu64" mins, "
> +                      "pmd load threshold %"PRIu8"%%, "
> +                      "improvement threshold %"PRIu8"%%",
> +                       pmd_alb->rebalance_intvl / MIN_TO_MSEC,
> +                       rebalance_load_thresh,
> +                       pmd_alb->rebalance_improve_thresh);
>          } else {
>              pmd_alb->rebalance_poll_timer = 0;
> @@ -4244,5 +4251,4 @@ set_pmd_auto_lb(struct dp_netdev *dp)
>          }
>      }
> -
>  }
>  
> @@ -4264,4 +4270,5 @@ dpif_netdev_set_config(struct dpif *dpif, const struct smap *other_config)
>      uint8_t rebalance_load, cur_rebalance_load;
>      uint8_t rebalance_improve;
> +    bool log_autolb = false;
>  
>      tx_flush_interval = smap_get_int(other_config, "tx-flush-interval",
> @@ -4349,4 +4356,7 @@ dpif_netdev_set_config(struct dpif *dpif, const struct smap *other_config)
>      if (pmd_alb->rebalance_intvl != rebalance_intvl) {
>          pmd_alb->rebalance_intvl = rebalance_intvl;
> +        VLOG_INFO("PMD auto load balance interval set to "
> +                  "%"PRIu64" mins\n", rebalance_intvl / MIN_TO_MSEC);
> +        log_autolb = true;
>      }
>  
> @@ -4358,4 +4368,7 @@ dpif_netdev_set_config(struct dpif *dpif, const struct smap *other_config)
>      if (rebalance_improve != pmd_alb->rebalance_improve_thresh) {
>          pmd_alb->rebalance_improve_thresh = rebalance_improve;
> +        VLOG_INFO("PMD auto load balance improvement threshold set to "
> +                  "%"PRIu8"%%\n", rebalance_improve);
> +        log_autolb = true;
>      }
>  
> @@ -4369,6 +4382,9 @@ dpif_netdev_set_config(struct dpif *dpif, const struct smap *other_config)
>          atomic_store_relaxed(&pmd_alb->rebalance_load_thresh,
>                               rebalance_load);
> +        VLOG_INFO("PMD auto load balance pmd load threshold set to "
> +                "%"PRIu8"%%\n", rebalance_load);
> +        log_autolb = true;
>      }
> -    set_pmd_auto_lb(dp);
> +    set_pmd_auto_lb(dp, log_autolb);
>      return 0;
>  }
> @@ -5454,5 +5470,5 @@ reconfigure_datapath(struct dp_netdev *dp)
>  
>      /* Check if PMD Auto LB is to be enabled */
> -    set_pmd_auto_lb(dp);
> +    set_pmd_auto_lb(dp, false);
>  }
>  
> -- 
> 2.26.2
> 

-- 
fbl


More information about the dev mailing list