lkml.org 
[lkml]   [2009]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 03/13] tracing: Move a printk out of ftrace_raw_reg_event_foo()
    On Tue, Dec 08, 2009 at 11:14:52AM +0800, Li Zefan wrote:
    > Move the printk from each ftrace_raw_reg_event_foo() to
    > its caller ftrace_event_enable_disable().
    >
    > See how much space this saves:
    >
    > text data bss dec hex filename
    > 5345151 1961864 7103260 14410275 dbe223 vmlinux.o.old
    > 5331487 1961864 7103260 14396611 dbacc3 vmlinux.o
    >
    > Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    > ---
    > include/trace/ftrace.h | 16 ++--------------
    > kernel/trace/trace_events.c | 17 +++++++++++++----
    > kernel/trace/trace_syscalls.c | 10 ++--------
    > 3 files changed, 17 insertions(+), 26 deletions(-)
    >
    > diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
    > index f978376..0c21af8 100644
    > --- a/include/trace/ftrace.h
    > +++ b/include/trace/ftrace.h
    > @@ -555,13 +555,7 @@ static void ftrace_profile_disable_##name(struct ftrace_event_call *unused)\
    > *
    > * static int ftrace_reg_event_<call>(struct ftrace_event_call *unused)
    > * {
    > - * int ret;
    > - *
    > - * ret = register_trace_<call>(ftrace_event_<call>);
    > - * if (!ret)
    > - * pr_info("event trace: Could not activate trace point "
    > - * "probe to <call>");
    > - * return ret;
    > + * return register_trace_<call>(ftrace_event_<call>);
    > * }
    > *
    > * static void ftrace_unreg_event_<call>(struct ftrace_event_call *unused)
    > @@ -710,13 +704,7 @@ static void ftrace_raw_event_##call(proto) \
    > \
    > static int ftrace_raw_reg_event_##call(struct ftrace_event_call *unused)\
    > { \
    > - int ret; \
    > - \
    > - ret = register_trace_##call(ftrace_raw_event_##call); \
    > - if (ret) \
    > - pr_info("event trace: Could not activate trace point " \
    > - "probe to " #call "\n"); \
    > - return ret; \
    > + return register_trace_##call(ftrace_raw_event_##call); \
    > } \
    > \
    > static void ftrace_raw_unreg_event_##call(struct ftrace_event_call *unused)\
    > diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
    > index 97b0b3a..bf2f1b9 100644
    > --- a/kernel/trace/trace_events.c
    > +++ b/kernel/trace/trace_events.c
    > @@ -118,9 +118,11 @@ int trace_event_raw_init(struct ftrace_event_call *call)
    > }
    > EXPORT_SYMBOL_GPL(trace_event_raw_init);
    >
    > -static void ftrace_event_enable_disable(struct ftrace_event_call *call,
    > +static int ftrace_event_enable_disable(struct ftrace_event_call *call,
    > int enable)
    > {
    > + int ret = 0;
    > +
    > switch (enable) {
    > case 0:
    > if (call->enabled) {
    > @@ -131,12 +133,19 @@ static void ftrace_event_enable_disable(struct ftrace_event_call *call,
    > break;
    > case 1:
    > if (!call->enabled) {
    > + ret = call->regfunc(call);
    > + if (ret) {
    > + pr_info("event trace: Could not enable event "
    > + "%s\n", call->name);
    > + break;
    > + }
    > call->enabled = 1;
    > tracing_start_cmdline_record();
    > - call->regfunc(call);



    That seems to open a tiny window during which we'll lose
    some pid -> comm resolution records.

    We should probably keep the previous call order.

    Other than that:

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

    Thanks.



    \
     
     \ /
      Last update: 2009-12-08 08:47    [W:0.027 / U:148.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site