[email protected] writes:
> From: Christophe Fontaine <[email protected]>
>
> ALB_ACCEPTABLE_IMPROVEMENT and ALB_PMD_LOAD_THRESHOLD default values
> can be overriden with "pmd-auto-lb-acc-improvement" and
> "pmd-auto-lb-threshold".
>
> Default values may not be suitable for all use cases, and we may want to
> experiment a more (or less) aggressive rebalance, either on the threshold
> (ie CPU usage which triggers a rebalance) or on the acceptable improvement
> (ie if the new queue assignation will be applied or discarded).
>
> $ ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-acc-improvement=20
> $ ovs-vsctl set open_vswitch . other_config:pmd-auto-lb-threshold=70
>
> Signed-off-by: Christophe Fontaine <[email protected]>
> ---
Hi Christophe,
Thanks for the contribution. I think it should have a NEWS item.
Also, add an entry into .mailmap and AUTHORS.rst with your name and
email :)
> lib/dpif-netdev.c | 12 ++++++++++--
> vswitchd/vswitch.xml | 28 +++++++++++++++++++++++++++-
> 2 files changed, 37 insertions(+), 3 deletions(-)
>
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index 02df8f11e..b981706b5 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -300,6 +300,8 @@ struct pmd_auto_lb {
> bool is_enabled; /* Current status of Auto load balancing. */
> uint64_t rebalance_intvl;
> uint64_t rebalance_poll_timer;
> + uint64_t rebalance_acc_improvement;
> + uint64_t rebalance_threshold;
> };
>
> /* Datapath based on the network device interface from netdev.h.
> @@ -4346,6 +4348,12 @@ dpif_netdev_set_config(struct dpif *dpif, const struct
> smap *other_config)
> pmd_alb->rebalance_intvl = rebalance_intvl;
> }
>
> + pmd_alb->rebalance_acc_improvement = smap_get_int(other_config,
> + "pmd-auto-lb-acc-improvement", ALB_ACCEPTABLE_IMPROVEMENT);
> +
> + pmd_alb->rebalance_threshold = smap_get_int(other_config,
> + "pmd-auto-lb-threshold", ALB_PMD_LOAD_THRESHOLD);
> +
> set_pmd_auto_lb(dp);
> return 0;
> }
> @@ -5674,7 +5682,7 @@ pmd_rebalance_dry_run(struct dp_netdev *dp)
> improvement =
> ((curr_variance - new_variance) * 100) / curr_variance;
> }
> - if (improvement < ALB_ACCEPTABLE_IMPROVEMENT) {
> + if (improvement < dp->pmd_alb.rebalance_acc_improvement) {
> ret = false;
> }
> }
> @@ -8724,7 +8732,7 @@ dp_netdev_pmd_try_optimize(struct dp_netdev_pmd_thread
> *pmd,
> pmd_load = ((tot_proc * 100) / (tot_idle + tot_proc));
> }
>
> - if (pmd_load >= ALB_PMD_LOAD_THRESHOLD) {
> + if (pmd_load >= pmd_alb->rebalance_threshold) {
> atomic_count_inc(&pmd->pmd_overloaded);
> } else {
> atomic_count_set(&pmd->pmd_overloaded, 0);
> diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
> index 81c84927f..53f9be591 100644
> --- a/vswitchd/vswitch.xml
> +++ b/vswitchd/vswitch.xml
> @@ -654,7 +654,7 @@
> <p>
> Configures PMD Auto Load Balancing that allows automatic assignment
> of
> RX queues to PMDs if any of PMDs is overloaded (i.e. processing
> cycles
> - > 95%).
> + > other_config:pmd-auto-lb-threshold).
> </p>
> <p>
> It uses current scheme of cycle based assignment of RX queues that
> @@ -690,6 +690,32 @@
> once in few hours or a day or a week.
> </p>
> </column>
> + <column name="other_config" key="pmd-auto-lb-threshold"
> + type='{"type": "integer",
> + "minInteger": 0, "maxInteger": 100}'>
> + <p>
> + Specifies the threshold defining when a PMD is overloaded.
> + When this threshold is reached, it will trigger a request to
> + rebalance the different queues between the non-pinned pmds.
> + </p>
> + <p>
> + The default value is <code>95</code>.
> + </p>
> + </column>
> + <column name="other_config" key="pmd-auto-lb-acc-improvement"
> + type='{"type": "integer",
> + "minInteger": 0, "maxInteger": 100}'>
> + <p>
> + When an auto load balance iteration is requested, this value
> + defines if the new queue assignation will be applied: comparing
> + the current queue assignation and the new one, the new assignation
> + will be applied only if the improvement of CPU usage is above
> + this value.
> + </p>
> + <p>
> + The default value is <code>25</code>.
> + </p>
> + </column>
> <column name="other_config" key="userspace-tso-enable"
> type='{"type": "boolean"}'>
> <p>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev