>On Fri, Oct 25, 2024 at 2:25 PM Tomasz Duszynski <tduszyn...@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 <tduszyn...@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.  

Reply via email to