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
