lkml.org 
[lkml]   [2009]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/probes] tracing/kprobes: Disable kprobe events by default after creation
    Commit-ID:  5a0d9050db4d1147722b42afef9011251b2651ee
    Gitweb: http://git.kernel.org/tip/5a0d9050db4d1147722b42afef9011251b2651ee
    Author: Masami Hiramatsu <mhiramat@redhat.com>
    AuthorDate: Mon, 14 Sep 2009 16:49:37 -0400
    Committer: Frederic Weisbecker <fweisbec@gmail.com>
    CommitDate: Thu, 17 Sep 2009 04:04:01 +0200

    tracing/kprobes: Disable kprobe events by default after creation

    Disable newly created kprobe events by default, not to disturb
    another user using ftrace. "Disturb" means when someone is using
    ftrace and another user tries to use perf-tools, (in near
    future) if he defines new kprobe event via perf-tools, then new
    events will mess up the frace buffer. Fix this to allow proper
    and transparent kprobes events concurrent usage between ftrace
    users and perf users.

    Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
    Acked-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: Jim Keniston <jkenisto@us.ibm.com>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Frank Ch. Eigler <fche@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Jason Baron <jbaron@redhat.com>
    Cc: K.Prasad <prasad@linux.vnet.ibm.com>
    Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    LKML-Reference: <20090914204937.18779.59422.stgit@dhcp-100-2-132.bos.redhat.com>
    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    ---
    Documentation/trace/kprobetrace.txt | 11 +++++++++--
    kernel/trace/trace_kprobe.c | 4 ++--
    2 files changed, 11 insertions(+), 4 deletions(-)

    diff --git a/Documentation/trace/kprobetrace.txt b/Documentation/trace/kprobetrace.txt
    index 6521681..9b8f7c6 100644
    --- a/Documentation/trace/kprobetrace.txt
    +++ b/Documentation/trace/kprobetrace.txt
    @@ -122,8 +122,15 @@ print fmt: "(%lx) dfd=%lx filename=%lx flags=%lx mode=%lx", REC->ip, REC->dfd, R

    echo > /sys/kernel/debug/tracing/kprobe_events

    - This clears all probe points. and you can see the traced information via
    -/sys/kernel/debug/tracing/trace.
    + This clears all probe points.
    +
    + Right after definition, each event is disabled by default. For tracing these
    +events, you need to enable it.
    +
    + echo 1 > /sys/kernel/debug/tracing/events/kprobes/myprobe/enable
    + echo 1 > /sys/kernel/debug/tracing/events/kprobes/myretprobe/enable
    +
    + And you can see the traced information via /sys/kernel/debug/tracing/trace.

    cat /sys/kernel/debug/tracing/trace
    # tracer: nop
    diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
    index d8db935..f6821f1 100644
    --- a/kernel/trace/trace_kprobe.c
    +++ b/kernel/trace/trace_kprobe.c
    @@ -383,7 +383,7 @@ static int register_trace_probe(struct trace_probe *tp)
    goto end;
    }

    - tp->flags = TP_FLAG_TRACE;
    + tp->rp.kp.flags |= KPROBE_FLAG_DISABLED;
    if (probe_is_return(tp))
    ret = register_kretprobe(&tp->rp);
    else
    @@ -1298,7 +1298,7 @@ static int register_probe_event(struct trace_probe *tp)
    call->id = register_ftrace_event(&tp->event);
    if (!call->id)
    return -ENODEV;
    - call->enabled = 1;
    + call->enabled = 0;
    call->regfunc = probe_event_enable;
    call->unregfunc = probe_event_disable;


    \
     
     \ /
      Last update: 2009-10-17 12:07    [W:0.046 / U:0.020 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site