[EXTERNAL] Re: [PATCH v15 4/4] eal: add PMU support to tracing library

Morten Brørup mb at smartsharesystems.com
Tue Nov 5 08:41:42 CET 2024


> From: Tomasz Duszynski [mailto:tduszynski at marvell.com]
> Sent: Monday, 28 October 2024 11.32
> 
> >On Fri, Oct 25, 2024 at 2:25 PM Tomasz Duszynski
> <tduszynski at marvell.com> wrote:
> >>
> >> In order to profile app one needs to store significant amount of
> >> samples somewhere for an analysis later on. Since trace library
> >> supports storing data in a CTF format lets take advantage of that
> and
> >> add a dedicated PMU tracepoint.
> >>
> >> Signed-off-by: Tomasz Duszynski <tduszynski at marvell.com>
> >
> >
> >--------------START-------------------------
> >> diff --git a/lib/eal/common/eal_common_trace_points.c
> >> b/lib/eal/common/eal_common_trace_points.c
> >> index 0f1240ea3a..c99eab92f4 100644
> >> --- a/lib/eal/common/eal_common_trace_points.c
> >> +++ b/lib/eal/common/eal_common_trace_points.c
> >> @@ -100,3 +100,8 @@
> RTE_TRACE_POINT_REGISTER(rte_eal_trace_intr_enable,
> >>         lib.eal.intr.enable)
> >>  RTE_TRACE_POINT_REGISTER(rte_eal_trace_intr_disable,
> >>         lib.eal.intr.disable)
> >> +
> >> +#ifdef RTE_LIB_PMU
> >> +RTE_TRACE_POINT_REGISTER(rte_eal_trace_pmu_read,
> >> +       lib.eal.pmu.read)
> >> +#endif
> >>
> >>  #define RTE_EAL_TRACE_GENERIC_FUNC
> >> rte_eal_trace_generic_func(__func__)
> >>
> >> +#ifdef RTE_LIB_PMU
> >> +#include <rte_pmu.h>
> >> +
> >> +RTE_TRACE_POINT_FP(
> >> +       rte_eal_trace_pmu_read,
> >> +       RTE_TRACE_POINT_ARGS(unsigned int index),
> >> +       uint64_t val = rte_pmu_read(index);
> >> +       rte_trace_point_emit_u64(val);
> >> +)
> >> +#endif
> >> +
> >--------------END-------------------------
> >
> >All of the above changes can go to lib/pmu. Right? Like ethdev is
> adding its trace points in ethdev
> >library?
> >and make trace point name as rte_pmu_trace_read
> 
> That's because libpmu is higher than eal in hierarchy of libraries so
> it won't see some symbols, for example __rte_trace_point_register().
> So first tracing itself needs to be moved out to a separate library and
> then approach other libs take would become natural for libpmu too.

OK; I suppose the required change of tracing library is not going to happen right away, so Ack to keeping it here (for now).

Please rename trace point to rte_pmu_trace_read / lib.pmu.read as requested by Jerin. Although it is temporarily in EAL (due to the above trace library issue), it really is PMU library, not EAL library.




More information about the dev mailing list