On Mon, Feb 6, 2023 at 12:59 PM Ankur Dwivedi <adwiv...@marvell.com> wrote: > > Adds a trace point emit function for capturing a blob. The blob > captures the length passed by the application followed by the array. > > The maximum blob bytes which can be captured is bounded by > RTE_TRACE_BLOB_LEN_MAX macro. The value for max blob length macro is > 64 bytes. If the length is less than 64 the remaining trailing bytes > are set to zero. > > This patch also adds test case for emit blob tracepoint function. > > Signed-off-by: Ankur Dwivedi <adwiv...@marvell.com> > Acked-by: Morten Brørup <m...@smartsharesystems.com> > Acked-by: Sunil Kumar Kori <sk...@marvell.com> > Acked-by: Jerin Jacob <jer...@marvell.com>
I came accross this patch while looking at CI failures. Giving my two cents. > diff --git a/lib/eal/include/rte_eal_trace.h b/lib/eal/include/rte_eal_trace.h > index 5ef4398230..6f5c022558 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(const void *in, uint8_t len), > + rte_trace_point_emit_blob(in, len); > +) > + > #define RTE_EAL_TRACE_GENERIC_FUNC rte_eal_trace_generic_func(__func__) This new tracepoint is exported as a public API. So its underlying symbol __rte_eal_trace_generic_blob (part of the inlined implementation) is visible to applications: #define __RTE_TRACE_POINT(_mode, _tp, _args, ...) \ extern rte_trace_point_t __##_tp; \ static __rte_always_inline void \ _tp _args \ { \ __rte_trace_point_emit_header_##_mode(&__##_tp); \ __VA_ARGS__ \ } __rte_eal_trace_generic_blob must be exported as a versionned symbol (i.e. listed in EAL version.map). -- David Marchand