[PATCH v2] eal: add tracepoints to track lcores and services
Stephen Hemminger
stephen at networkplumber.org
Fri May 12 00:18:50 CEST 2023
On Thu, 11 May 2023 17:01:48 -0400
Arnaud Fiorini <arnaud.fiorini at polymtl.ca> wrote:
> On 2023-05-11 4:50 p.m., Stephen Hemminger wrote:
> > On Thu, 11 May 2023 20:16:28 +0000
> > Arnaud Fiorini <arnaud.fiorini at polymtl.ca> wrote:
> >
> >> +The service core library is instrumented with tracepoints using the DPDK Trace
> >> +Library. These tracepoints allow you to track the service and logical cores
> >> +state. The tracepoints that are on the fast path are compiled out by default.
> >> +To activate the fast path tracepoints, it is necessary to add the
> >> +``enable_trace_fp`` option when building DPDK using meson.
> >> +
> >> +To activate tracing when launching a DPDK program it is necessary to use the
> >> +``--trace`` option to specify a regular expression to select which tracepoints
> >> +to enable. Here is an example if you want to only specify service core tracing::
> >> +
> >> + ./dpdk/examples/service_cores/build/service_cores --trace="lib.eal.thread*" --trace="lib.eal.service*"
> >> +
> > These state changes are not in the hot path. So they should always be available?
>
> Some of the tracepoints (rte_eal_trace_thread_lcore_running,
> rte_eal_trace_thread_lcore_stopped, rte_eal_trace_service_run_begin) are
> defined as fast path tracepoints. If these changes do not need to be in
> the fast path, I can change their definition.
>
Only inside the loop itself, ie polling is really fast path.
State transitions are not.
More information about the dev
mailing list