lkml.org 
[lkml]   [2016]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 109/116] tracing: Fix showing function event in available_events
    Date
    From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit d045437a169f899dfb0f6f7ede24cc042543ced9 upstream.

    The ftrace:function event is only displayed for parsing the function tracer
    data. It is not used to enable function tracing, and does not include an
    "enable" file in its event directory.

    Originally, this event was kept separate from other events because it did
    not have a ->reg parameter. But perf added a "reg" parameter for its use
    which caused issues, because it made the event available to functions where
    it was not compatible for.

    Commit 9b63776fa3ca9 "tracing: Do not enable function event with enable"
    added a TRACE_EVENT_FL_IGNORE_ENABLE flag that prevented the function event
    from being enabled by normal trace events. But this commit missed keeping
    the function event from being displayed by the "available_events" directory,
    which is used to show what events can be enabled by set_event.

    One documented way to enable all events is to:

    cat available_events > set_event

    But because the function event is displayed in the available_events, this
    now causes an INVALID error:

    cat: write error: Invalid argument

    Reported-by: Chunyu Hu <chuhu@redhat.com>
    Fixes: 9b63776fa3ca9 "tracing: Do not enable function event with enable"
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    kernel/trace/trace_events.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
    index be15da87b390..9514ee1791a7 100644
    --- a/kernel/trace/trace_events.c
    +++ b/kernel/trace/trace_events.c
    @@ -604,7 +604,8 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
    * The ftrace subsystem is for showing formats only.
    * They can not be enabled or disabled via the event files.
    */
    - if (call->class && call->class->reg)
    + if (call->class && call->class->reg &&
    + !(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE))
    return file;
    }

    --
    2.7.2
    \
     
     \ /
      Last update: 2016-03-04 11:01    [W:5.119 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site