lkml.org 
[lkml]   [2012]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH 1/1] ftrace: fix dynamic ftrace filter reset issue
    From
    From 60ec8a88ba671fa0b424f7b4467dba3ea8a2a2c8 Mon Sep 17 00:00:00 2001
    From: Rajesh Bhagat <rajesh.lnx@gmail.com>
    Date: Tue, 20 Mar 2012 10:35:59 +0530
    Subject: [PATCH 1/1] ftrace: fix dynamic ftrace filter reset issue

    This patch resets the trace_array using tracing_reset_online_cpus, if same
    tracer is set again instead of just returning from funtion tracing_set_tracer.

    problem description
    -------------------
    once function tracer is set, set_ftrace_filter not working.
    /debug/tracing # echo function > current_tracer
    /debug/tracing # echo schedule > set_ftrace_filter
    /debug/tracing # echo function > current_tracer
    /debug/tracing # cat trace
    # tracer: function
    #
    # TASK-PID CPU# TIMESTAMP FUNCTION
    # | | | | |
    <idle>-0 [000] 21.997778: irq_enter <-handle_IRQ
    <idle>-0 [000] 21.997785: idle_cpu <-irq_enter
    <idle>-0 [000] 21.997794: local_bh_disable <-irq_enter
    <idle>-0 [000] 21.997800: tick_check_idle <-irq_enter
    <idle>-0 [000] 21.997807:
    tick_check_oneshot_broadcast <-tick_check_idle
    <idle>-0 [000] 21.997814: _local_bh_enable <-irq_enter

    After applying this patch, only filtered functions are traced.

    Signed-off-by: Rajesh Bhagat <rajesh.lnx@gmail.com>
    ---
    kernel/trace/trace.c | 4 +++-
    1 files changed, 3 insertions(+), 1 deletions(-)

    diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
    index a3f1bc5..f4fb190 100644
    --- a/kernel/trace/trace.c
    +++ b/kernel/trace/trace.c
    @@ -3058,8 +3058,10 @@ static int tracing_set_tracer(const char *buf)
    ret = -EINVAL;
    goto out;
    }
    - if (t == current_trace)
    + if (t == current_trace) {
    + tracing_reset_online_cpus(tr);
    goto out;
    + }

    trace_branch_disable();
    if (current_trace && current_trace->reset)
    --
    1.7.6

    \
     
     \ /
      Last update: 2012-03-21 06:55    [W:0.023 / U:92.072 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site