Re: [PATCH 00/12] trace: add the ability to parse sizeof()

From: Steven Rostedt
Date: Wed May 31 2017 - 21:12:02 EST



Hi Jeremy,

I'm currently at the Open Source Summit in Tokyo. It may be a while
before I get to look more at this. If I get time during my travels,
I may get to it sooner, otherwise it may be a week or so.

-- Steve

On Wed, 31 May 2017 16:56:41 -0500
Jeremy Linton <jeremy.linton@xxxxxxx> wrote:

> There are a few cases of sizeof() embedded in TRACE_EVENT()
> macros. That is a problem because the sizeof(structure) gets
> passed to userspace which doesn't know how to decode the
> size of kernel data structures. This is a similar problem
> to enums which were being passed in their symbolic form to
> userspace.
>
> Rather than recreating much of that infrastructure lets
> simply extend it, and append additional symbols into the
> enum_map that can translate string sizeof() calls into
> values. Of course that means that much of the infrastructure
> is now poorly named so we go through and replace instances
> describing "enum" with "eval" to indicate a generic C
> expression to numerical evaluation routine.
>
> Jeremy Linton (12):
> trace: rename kernel enum section to eval
> trace: rename trace_enum_map to trace_eval_map
> trace: rename struct module entry for trace enums
> trace: rename trace enum data structures in trace.c
> trace: rename trace_enum_mutex to trace_eval_mutex
> trace: rename trace.c enum functions
> trace: rename enum_map functions
> tracing: Rename enum_replace to eval_replace
> tracing: define TRACE_DEFINE_SIZEOF() macro to map sizeof's to their
> values
> tracing: Update sample file to describe the new macro
> tracing: Add TRACE_DEFINE_SIZEOF() macros
> tracing: Rename update the enum_map file
>
> arch/arm64/kvm/trace.h | 2 +
> include/asm-generic/vmlinux.lds.h | 6 +-
> include/linux/module.h | 4 +-
> include/linux/tracepoint.h | 7 +-
> include/trace/events/xen.h | 13 +-
> include/trace/trace_events.h | 26 +++-
> kernel/module.c | 6 +-
> kernel/trace/Kconfig | 22 ++--
> kernel/trace/trace.c | 194
> ++++++++++++++---------------
> kernel/trace/trace.h | 4 +-
> kernel/trace/trace_events.c | 24 ++--
> samples/trace_events/trace-events-sample.h | 7 ++ 12 files changed,
> 175 insertions(+), 140 deletions(-)
>