lkml.org 
[lkml]   [2012]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/urgent] tracing: Fix ftrace stack trace entries
    Commit-ID:  01de982abf8c9e10fc3089e10585cd2cc914bdab
    Gitweb: http://git.kernel.org/tip/01de982abf8c9e10fc3089e10585cd2cc914bdab
    Author: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
    AuthorDate: Thu, 22 Mar 2012 11:18:20 +0100
    Committer: Steven Rostedt <rostedt@goodmis.org>
    CommitDate: Thu, 22 Mar 2012 12:19:23 -0400

    tracing: Fix ftrace stack trace entries

    8 hex characters tell only half the tale for 64 bit CPUs,
    so use the appropriate length.

    Link: http://lkml.kernel.org/r/1332411501-8059-2-git-send-email-wolfgang.mauerer@siemens.com

    Cc: stable@vger.kernel.org
    Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    kernel/trace/trace_entries.h | 16 ++++++++++++----
    kernel/trace/trace_export.c | 2 +-
    2 files changed, 13 insertions(+), 5 deletions(-)

    diff --git a/kernel/trace/trace_entries.h b/kernel/trace/trace_entries.h
    index 9336590..205dcac 100644
    --- a/kernel/trace/trace_entries.h
    +++ b/kernel/trace/trace_entries.h
    @@ -156,6 +156,12 @@ FTRACE_ENTRY_DUP(wakeup, ctx_switch_entry,

    #define FTRACE_STACK_ENTRIES 8

    +#ifndef CONFIG_64BIT
    +# define IP_FMT "%08lx"
    +#else
    +# define IP_FMT "%016lx"
    +#endif
    +
    FTRACE_ENTRY(kernel_stack, stack_entry,

    TRACE_STACK,
    @@ -165,8 +171,9 @@ FTRACE_ENTRY(kernel_stack, stack_entry,
    __dynamic_array(unsigned long, caller )
    ),

    - F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n"
    - "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n",
    + F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
    + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
    + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n",
    __entry->caller[0], __entry->caller[1], __entry->caller[2],
    __entry->caller[3], __entry->caller[4], __entry->caller[5],
    __entry->caller[6], __entry->caller[7])
    @@ -181,8 +188,9 @@ FTRACE_ENTRY(user_stack, userstack_entry,
    __array( unsigned long, caller, FTRACE_STACK_ENTRIES )
    ),

    - F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n"
    - "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n",
    + F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
    + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
    + "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n",
    __entry->caller[0], __entry->caller[1], __entry->caller[2],
    __entry->caller[3], __entry->caller[4], __entry->caller[5],
    __entry->caller[6], __entry->caller[7])
    diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
    index bbeec31..ad4000c 100644
    --- a/kernel/trace/trace_export.c
    +++ b/kernel/trace/trace_export.c
    @@ -150,7 +150,7 @@ ftrace_define_fields_##name(struct ftrace_event_call *event_call) \
    #define __dynamic_array(type, item)

    #undef F_printk
    -#define F_printk(fmt, args...) #fmt ", " __stringify(args)
    +#define F_printk(fmt, args...) __stringify(fmt) ", " __stringify(args)

    #undef FTRACE_ENTRY
    #define FTRACE_ENTRY(call, struct_name, etype, tstruct, print) \

    \
     
     \ /
      Last update: 2012-03-24 08:59    [W:0.024 / U:0.572 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site