> From: Robin Jarry [mailto:[email protected]]
> Sent: Tuesday, 9 December 2025 12.47
> 
> Morten Brørup, Dec 09, 2025 at 12:13:
> > Looking at patch 2/2, I disagree with the approach.
> >
> > RTE_LIBRTE_GRAPH_STATS should control all stats, incl. total_calls
> and
> > total_objs. Then, if enabled, the total_cycles stats can be
> controlled
> > by rte_graph_cycle_stats_enable().
> >
> > Your v1 series introduces unnecessary overhead for applications not
> > caring about total_calls/total_objs stats and thus built without
> > RTE_LIBRTE_GRAPH_STATS.
> 
> My issue is that I would like the total_objs stat but without the
> overhead of rte_rdtsc() being called twice for every node visit.

I get that. My proposal provides that.

> 
> And also, I would like to be able to enable/disable these stats *at
> runtime*.

Why would you enable/disable total_calls/total_objs at runtime?

> Having it behind a compile time constant makes it very not
> flexible.

Agree, but instrumentation has a performance cost, and should be possible to 
disable at compile time.

> 
> I could have two booleans to control whether total_calls/total_objs are
> updated *and* whether total_cycles are computed. But that seems a bit
> overkill and it would mean two fields to check (two branches) instead
> of
> one per node.
> 
> Is it really that bad to update two uint64_t counters?

The cost is unnecessary. It's instrumentation.

> 
> --
> Robin
> 
> > Your canceled check is your receipt.

Please change your cookie generator to not make it look a quote from the person 
you are replying to.

Reply via email to