lkml.org 
[lkml]   [2012]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/7] ftrace: Add FTRACE_ENTRY_REG macro to allow event registration
    On Wed, Feb 15, 2012 at 03:51:51PM +0100, Jiri Olsa wrote:
    > Adding FTRACE_ENTRY_REG macro so particular ftrace entries
    > could specify registration function and thus become accesible
    > via perf.
    >
    > This will be used in upcomming patch for function trace.
    >
    > Signed-off-by: Jiri Olsa <jolsa@redhat.com>

    Acked-by: Frederic Weisbecker <fweisbec@gmail.com>

    > ---
    > kernel/trace/trace.h | 4 ++++
    > kernel/trace/trace_export.c | 18 ++++++++++++++++--
    > 2 files changed, 20 insertions(+), 2 deletions(-)
    >
    > diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
    > index 55c6ea0..638476a 100644
    > --- a/kernel/trace/trace.h
    > +++ b/kernel/trace/trace.h
    > @@ -68,6 +68,10 @@ enum trace_type {
    > #undef FTRACE_ENTRY_DUP
    > #define FTRACE_ENTRY_DUP(name, name_struct, id, tstruct, printk)
    >
    > +#undef FTRACE_ENTRY_REG
    > +#define FTRACE_ENTRY_REG(name, struct_name, id, tstruct, print, regfn) \
    > + FTRACE_ENTRY(name, struct_name, id, PARAMS(tstruct), PARAMS(print))
    > +
    > #include "trace_entries.h"
    >
    > /*
    > diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
    > index bbeec31..f74de86 100644
    > --- a/kernel/trace/trace_export.c
    > +++ b/kernel/trace/trace_export.c
    > @@ -18,6 +18,14 @@
    > #undef TRACE_SYSTEM
    > #define TRACE_SYSTEM ftrace
    >
    > +/*
    > + * The FTRACE_ENTRY_REG macro allows ftrace entry to define register
    > + * function and thus become accesible via perf.
    > + */
    > +#undef FTRACE_ENTRY_REG
    > +#define FTRACE_ENTRY_REG(name, struct_name, id, tstruct, print, regfn) \
    > + FTRACE_ENTRY(name, struct_name, id, PARAMS(tstruct), PARAMS(print))
    > +
    > /* not needed for this file */
    > #undef __field_struct
    > #define __field_struct(type, item)
    > @@ -152,13 +160,14 @@ ftrace_define_fields_##name(struct ftrace_event_call *event_call) \
    > #undef F_printk
    > #define F_printk(fmt, args...) #fmt ", " __stringify(args)
    >
    > -#undef FTRACE_ENTRY
    > -#define FTRACE_ENTRY(call, struct_name, etype, tstruct, print) \
    > +#undef FTRACE_ENTRY_REG
    > +#define FTRACE_ENTRY_REG(call, struct_name, etype, tstruct, print, regfn)\
    > \
    > struct ftrace_event_class event_class_ftrace_##call = { \
    > .system = __stringify(TRACE_SYSTEM), \
    > .define_fields = ftrace_define_fields_##call, \
    > .fields = LIST_HEAD_INIT(event_class_ftrace_##call.fields),\
    > + .reg = regfn, \
    > }; \
    > \
    > struct ftrace_event_call __used event_##call = { \
    > @@ -170,4 +179,9 @@ struct ftrace_event_call __used event_##call = { \
    > struct ftrace_event_call __used \
    > __attribute__((section("_ftrace_events"))) *__event_##call = &event_##call;
    >
    > +#undef FTRACE_ENTRY
    > +#define FTRACE_ENTRY(call, struct_name, etype, tstruct, print) \
    > + FTRACE_ENTRY_REG(call, struct_name, etype, \
    > + PARAMS(tstruct), PARAMS(print), NULL)
    > +
    > #include "trace_entries.h"
    > --
    > 1.7.1
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/


    \
     
     \ /
      Last update: 2012-02-15 16:15    [W:4.156 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site