[RFC] service: extend service function call statistics

Morten Brørup mb at smartsharesystems.com
Fri Jan 26 00:19:10 CET 2024


> From: Mattias Rönnblom [mailto:mattias.ronnblom at ericsson.com]
> Sent: Thursday, 25 January 2024 20.15
> 
> Add two new per-service counters.
> 
> RTE_SERVICE_ATTR_IDLE_CALL_COUNT tracks the number of service function
> invocations where no work was performed.
> 
> RTE_SERVICE_ATTR_ERROR_CALL_COUNT tracks the number invocations
> resulting in an error.
> 
> The semantics of RTE_SERVICE_ATTR_CALL_COUNT remains the same (i.e.,
> counting all invocations, regardless of return value).
> 
> The new statistics may be useful for both debugging and profiling
> (e.g., calculate the average per-call processing latency for non-idle
> service calls).
> 
> Service core tests are extended to cover the new counters, and
> coverage for RTE_SERVICE_ATTR_CALL_COUNT is improved.

OK to all of the above. Good stuff.

> 
> The documentation for the CYCLES attributes are updated to reflect
> their actual semantics.

If this is intended behavior, then updating the documentation seems appropriate - I would even go so far as considering it a bug fix.

However, quite a few cycles may be consumed by a service before it can conclude that it had no work to do. Shouldn't that be considered time spent by the service? I.e. should the code be fixed instead of the documentation?

Alternatively, keep the behavior (for backwards compatibility) and fix the documentation, as this patch does, and add an IDLE_CYCLES counter for time spent in idle calls.

PS: We're not using DPDK service cores in our applications, so I'm not familiar with the details. We are using something somewhat similar (but homegrown), also for profiling and power management purposes, and my feedback is based on my experience with our own variant of service cores.

Either way:

Acked-by: Morten Brørup <mb at smartsharesystems.com>



More information about the dev mailing list