Re: [PATCH] tracing/synthetic: use union instead of casts

From: Steven Rostedt
Date: Tue Aug 08 2023 - 17:17:15 EST


On Tue, 08 Aug 2023 19:33:06 +0200
Sven Schnelle <svens@xxxxxxxxxxxxx> wrote:

> Steven Rostedt <rostedt@xxxxxxxxxxx> writes:
>
> > The "dynamic" I was using wasn't about the fields were dynamic (union), but
> > because the field the offset/len combo represents is of dynamic size. It's
> > used all over the trace_events code.
> >
> > I would have in include/linux/trace_events.h (right above struct trace_entry):
> >
> > /* Used to find the offset and length of dynamic fields in trace events */
> > struct trace_dynamic_info {
> > #ifdef CONFIG_CPU_BIG_ENDIAN
> > u16 offset;
> > u16 len;
> > #else
> > u16 len;
> > u16 offset;
> > #endif
> > };
> >
> > And then it kernel/trace/trace.h:
> >
> > union trace_synthetic_field {
> > u8 as_u8;
> > u16 as_u16;
> > u32 as_u32;
> > u64 as_u64;
> > struct trace_dynamic_info as_dynamic;
> > };
>
> Ok.
>
> > I could work on the part of the trace_dynamic_info if you want.
>
> Whatever you prefer. Should i update my patch and send it again, or do
> you want to adjust it?
>

How quickly do you need it. I can hopefully start working on it this week.

-- Steve