One more observation that the size of lib.eal.generic.blob trace point is 31962 bytes. Is this trace point this much big or some bug ?
> -----Original Message----- > From: Sunil Kumar Kori > Sent: Thursday, January 12, 2023 10:00 PM > To: Ankur Dwivedi <[email protected]>; [email protected] > Cc: [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; Igor Russkikh <[email protected]>; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; Jerin Jacob Kollanukkaran > <[email protected]>; Maciej Czekaj [C] <[email protected]>; Shijith > Thotton <[email protected]>; Srisivasubramanian Srinivasan > <[email protected]>; Harman Kalra <[email protected]>; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; Nithin Kumar Dabilpuram > <[email protected]>; Kiran Kumar Kokkilagadda > <[email protected]>; Satha Koteswara Rao Kottidi > <[email protected]>; Liron Himi <[email protected]>; > [email protected]; Radha Chintakuntla <[email protected]>; > Veerasenareddy Burru <[email protected]>; Sathesh B Edara > <[email protected]>; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; Rasesh Mody > <[email protected]>; Shahed Shaikh <[email protected]>; Devendra > Singh Rawat <[email protected]>; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; > [email protected]; Ankur Dwivedi <[email protected]> > Subject: RE: [PATCH v5 1/6] eal: trace: add trace point emit for blob > > > -----Original Message----- > > From: Ankur Dwivedi <[email protected]> > > Sent: Thursday, January 12, 2023 4:52 PM > > To: [email protected] > > Cc: [email protected]; [email protected]; > [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; Igor Russkikh <[email protected]>; > > [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; Jerin Jacob Kollanukkaran > > <[email protected]>; Maciej Czekaj [C] <[email protected]>; Shijith > > Thotton <[email protected]>; Srisivasubramanian Srinivasan > > <[email protected]>; Harman Kalra <[email protected]>; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; Nithin Kumar Dabilpuram > <[email protected]>; > > Kiran Kumar Kokkilagadda <[email protected]>; Sunil Kumar Kori > > <[email protected]>; Satha Koteswara Rao Kottidi > > <[email protected]>; Liron Himi <[email protected]>; > > [email protected]; Radha Chintakuntla <[email protected]>; > > Veerasenareddy Burru <[email protected]>; Sathesh B Edara > > <[email protected]>; [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; Rasesh Mody > > <[email protected]>; Shahed Shaikh <[email protected]>; > Devendra > > Singh Rawat <[email protected]>; > [email protected]; > > [email protected]; [email protected]; > [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; [email protected]; > > [email protected]; [email protected]; > > [email protected]; [email protected]; Ankur Dwivedi > > <[email protected]> > > Subject: [PATCH v5 1/6] eal: trace: add trace point emit for blob > > > > Adds a trace point emit function for emitting a blob. The maximum blob > > bytes which can be captured is maximum value contained in uint16_t, > > which is 65535. > > > > Also adds test case for emit array tracepoint function. > > > > Signed-off-by: Ankur Dwivedi <[email protected]> > > --- > > app/test/test_trace.c | 5 +++++ > > lib/eal/common/eal_common_trace_points.c | 2 ++ > > lib/eal/include/rte_eal_trace.h | 6 ++++++ > > lib/eal/include/rte_trace_point.h | 17 +++++++++++++++++ > > lib/eal/include/rte_trace_point_register.h | 7 +++++++ > > lib/eal/version.map | 3 +++ > > 6 files changed, 40 insertions(+) > > > > diff --git a/app/test/test_trace.c b/app/test/test_trace.c index > > 6bedf14024..cf781dc25b 100644 > > --- a/app/test/test_trace.c > > +++ b/app/test/test_trace.c > > @@ -4,6 +4,7 @@ > > > > #include <rte_eal_trace.h> > > #include <rte_lcore.h> > > +#include <rte_random.h> > > #include <rte_trace.h> > > > > #include "test.h" > > @@ -177,6 +178,7 @@ test_fp_trace_points(void) static int > > test_generic_trace_points(void) > > { > > + uint8_t arr[32] = {0}; > > int tmp; > > > > rte_eal_trace_generic_void(); > > @@ -195,6 +197,9 @@ test_generic_trace_points(void) > > rte_eal_trace_generic_ptr(&tmp); > > rte_eal_trace_generic_str("my string"); > > rte_eal_trace_generic_size_t(sizeof(void *)); > > + rte_eal_trace_generic_blob(arr, 17); > Do we need this test case now as (rte_rand % 32) will make sure to validate > array of valid size only i.e. 0-31 ? > > > + rte_eal_trace_generic_blob(arr, 32); > > + rte_eal_trace_generic_blob(arr, rte_rand() % 32); > When executed trace_autotest then I didn't find 3rd generic.blob trace point. > Can you please explain the behavior ? > > > RTE_EAL_TRACE_GENERIC_FUNC; > > > > return TEST_SUCCESS; > > diff --git a/lib/eal/common/eal_common_trace_points.c > > b/lib/eal/common/eal_common_trace_points.c > > index 0b0b254615..051f89809c 100644 > > --- a/lib/eal/common/eal_common_trace_points.c > > +++ b/lib/eal/common/eal_common_trace_points.c > > @@ -40,6 +40,8 @@ > > RTE_TRACE_POINT_REGISTER(rte_eal_trace_generic_size_t, > > lib.eal.generic.size_t) > > RTE_TRACE_POINT_REGISTER(rte_eal_trace_generic_func, > > lib.eal.generic.func) > > +RTE_TRACE_POINT_REGISTER(rte_eal_trace_generic_blob, > > + lib.eal.generic.blob) > > > > RTE_TRACE_POINT_REGISTER(rte_eal_trace_alarm_set, > > lib.eal.alarm.set) > > diff --git a/lib/eal/include/rte_eal_trace.h > > b/lib/eal/include/rte_eal_trace.h index 5ef4398230..02e3a564a1 100644 > > --- a/lib/eal/include/rte_eal_trace.h > > +++ b/lib/eal/include/rte_eal_trace.h > > @@ -143,6 +143,12 @@ RTE_TRACE_POINT( > > rte_trace_point_emit_string(func); > > ) > > > > +RTE_TRACE_POINT( > > + rte_eal_trace_generic_blob, > > + RTE_TRACE_POINT_ARGS(void *in, uint16_t len), > > + rte_trace_point_emit_blob(in, len); > > +) > > + > > #define RTE_EAL_TRACE_GENERIC_FUNC > > rte_eal_trace_generic_func(__func__) > > > > /* Interrupt */ > > diff --git a/lib/eal/include/rte_trace_point.h > > b/lib/eal/include/rte_trace_point.h > > index 0f8700974f..21b6bf7bf6 100644 > > --- a/lib/eal/include/rte_trace_point.h > > +++ b/lib/eal/include/rte_trace_point.h > > @@ -144,6 +144,8 @@ _tp _args \ > > #define rte_trace_point_emit_ptr(val) > > /** Tracepoint function payload for string datatype */ #define > > rte_trace_point_emit_string(val) > > +/** Tracepoint function payload for char array */ #define > > +rte_trace_point_emit_blob(val, len) > > > > #endif /* __DOXYGEN__ */ > > > > @@ -374,12 +376,27 @@ do { \ > > mem = RTE_PTR_ADD(mem, > > __RTE_TRACE_EMIT_STRING_LEN_MAX); \ } while (0) > > > > +#define rte_trace_point_emit_blob(in, len) \ do { \ > > + if (unlikely(in == NULL)) \ > > + return; \ > > + __rte_trace_point_emit(len, uint16_t); \ > Just to confirm that is there any typo meaning "in should be used in place of > len here" ? > > > + memcpy(mem, in, len); \ > > + mem = RTE_PTR_ADD(mem, len); \ > Also rte_trace_point_emit copies and increment the memory pointer itself. > Then what is the purpose of above 2 instructions ? > > > +} while (0) > > + > > #else > > > > #define __rte_trace_point_emit_header_generic(t) RTE_SET_USED(t) > > #define __rte_trace_point_emit_header_fp(t) RTE_SET_USED(t) #define > > __rte_trace_point_emit(in, type) RTE_SET_USED(in) #define > > rte_trace_point_emit_string(in) RTE_SET_USED(in) > > +#define rte_trace_point_emit_blob(in, len) \ do { \ > > + RTE_SET_USED(in); \ > > + RTE_SET_USED(len); \ > > +} while (0) > > + > > > > #endif /* ALLOW_EXPERIMENTAL_API */ > > #endif /* _RTE_TRACE_POINT_REGISTER_H_ */ diff --git > > a/lib/eal/include/rte_trace_point_register.h > > b/lib/eal/include/rte_trace_point_register.h > > index a32f4d731b..a54f9769da 100644 > > --- a/lib/eal/include/rte_trace_point_register.h > > +++ b/lib/eal/include/rte_trace_point_register.h > > @@ -47,6 +47,13 @@ do { \ > > RTE_STR(in)"[32]", "string_bounded_t"); \ } while (0) > > > > +#define rte_trace_point_emit_blob(in, len) \ do { \ > > + RTE_SET_USED(in); \ > > + __rte_trace_point_emit(len, uint16_t); \ > > + __rte_trace_point_emit_field(len, RTE_STR(in)"["#len"]", > > +RTE_STR(uint8_t)); \ } while (0) > > + > > #ifdef __cplusplus > > } > > #endif > > diff --git a/lib/eal/version.map b/lib/eal/version.map index > > 7ad12a7dc9..67be24686a 100644 > > --- a/lib/eal/version.map > > +++ b/lib/eal/version.map > > @@ -440,6 +440,9 @@ EXPERIMENTAL { > > rte_thread_detach; > > rte_thread_equal; > > rte_thread_join; > > + > > + # added in 23.03 > > + __rte_eal_trace_generic_blob; > > }; > > > > INTERNAL { > > -- > > 2.25.1

