Re: [PATCH v7 2/2] Tracepoint: register/unregister struct tracepoint

Mathieu Desnoyers
2014-03-22T02:34:56Z

----- Original Message -----
> From: "Steven Rostedt" <rostedt@goodmis.org>
> To: "Mathieu Desnoyers" <mathieu.desnoyers@efficios.com>
> Cc: linux-kernel@vger.kernel.org, "Ingo Molnar" <mingo@kernel.org>, "Frederic Weisbecker" <fweisbec@gmail.com>,
> "Andrew Morton" <akpm@linux-foundation.org>, "Frank Ch. Eigler" <fche@redhat.com>, "Johannes Berg"
> <johannes.berg@intel.com>
> Sent: Friday, March 21, 2014 3:40:00 PM
> Subject: Re: [PATCH v7 2/2] Tracepoint: register/unregister struct tracepoint
>
> On Fri, 21 Mar 2014 01:19:02 -0400
>
> > diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
> > index 4e4cc28..1592c1c 100644
> > --- a/include/linux/ftrace_event.h
> > +++ b/include/linux/ftrace_event.h
> > @@ -230,6 +230,7 @@ struct ftrace_event_call {
> > struct list_head list;
> > struct ftrace_event_class *class;
> > char *name;
> > + struct tracepoint *tp;
>
>
> This change right here just added 17K to the kernel (on a minimum config):
>
> text data bss dec hex filename
> 8425515 2018936 1302528 11746979 b33ea3 vmlinux.orig
> 8424914 2036472 1302528 11763914 b380ca vmlinux
>
> The two are redundant. Might as well remove .name and then
> use .tp->name for referencing the name of the event.

What should we do about:

kernel/trace/trace_export.c:

struct ftrace_event_call __used event_##call = { \
.name = #call, \
.event.type = etype, \
.class = &event_class_ftrace_##call, \
.print_fmt = print, \
.flags = TRACE_EVENT_FL_IGNORE_ENABLE | TRACE_EVENT_FL_USE_CALL_FILTER, \
};

when replacing the .name for a .tp->name, it is unclear what the
tracepoint structure should be (is there even one ?).

Thanks,

Mathieu

>
> -- Steve
>
>
> > struct trace_event event;
> > const char *print_fmt;
> > struct event_filter *filter;
>

--
Mathieu Desnoyers
EfficiOS Inc.