On 1/10/24 12:25, Eelco Chaudron wrote:
> Add new coverage counters that might help debugging flow_limit
> related issues.
> 
> Signed-off-by: Eelco Chaudron <[email protected]>
> ---
> 
>  v2: Changed duration into flow increase/decrease counters.
> 
>  ofproto/ofproto-dpif-upcall.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
> index cd71e3ee3..b5cbeed87 100644
> --- a/ofproto/ofproto-dpif-upcall.c
> +++ b/ofproto/ofproto-dpif-upcall.c
> @@ -59,8 +59,11 @@ COVERAGE_DEFINE(handler_duplicate_upcall);
>  COVERAGE_DEFINE(revalidate_missed_dp_flow);
>  COVERAGE_DEFINE(ukey_dp_change);
>  COVERAGE_DEFINE(ukey_invalid_stat_reset);
> +COVERAGE_DEFINE(upcall_flow_limit_grew);
>  COVERAGE_DEFINE(upcall_flow_limit_hit);
>  COVERAGE_DEFINE(upcall_flow_limit_kill);
> +COVERAGE_DEFINE(upcall_flow_limit_reduced);
> +COVERAGE_DEFINE(upcall_flow_limit_scaled);
>  COVERAGE_DEFINE(upcall_ukey_contention);
>  COVERAGE_DEFINE(upcall_ukey_replace);
>  
> @@ -1039,11 +1042,14 @@ udpif_revalidator(void *arg)
>              udpif->dump_duration = duration;
>              if (duration > 2000) {
>                  flow_limit /= duration / 1000;
> +                COVERAGE_INC(upcall_flow_limit_scaled);
>              } else if (duration > 1300) {
>                  flow_limit = flow_limit * 3 / 4;
> +                COVERAGE_INC(upcall_flow_limit_reduced);
>              } else if (duration < 1000 &&
>                         flow_limit < n_flows * 1000 / duration) {
>                  flow_limit += 1000;
> +                COVERAGE_INC(upcall_flow_limit_grew);
>              }
>              flow_limit = MIN(ofproto_flow_limit, MAX(flow_limit, 1000));
>              atomic_store_relaxed(&udpif->flow_limit, flow_limit);


Acked-by: Ilya Maximets <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to