mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 1/1] ftrace: fix dynamic ftrace filter reset issue
@ 2012-03-21  5:52 Rajesh Bhagat
  2012-03-23 19:36 ` Steven Rostedt
  2012-03-26 17:13 ` Steven Rostedt
  0 siblings, 2 replies; 10+ messages in thread
From: Rajesh Bhagat @ 2012-03-21  5:52 UTC (permalink / raw)
  To: Steven Rostedt, Frederic Weisbecker, Ingo Molnar; +Cc: linux-kernel

>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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2012-03-27  3:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-21  5:52 [PATCH 1/1] ftrace: fix dynamic ftrace filter reset issue Rajesh Bhagat
2012-03-23 19:36 ` Steven Rostedt
2012-03-24  4:17   ` Rajesh Bhagat
2012-03-24  4:53     ` Rajesh Bhagat
2012-03-24 13:55     ` Steven Rostedt
2012-03-25 18:11       ` Rajesh Bhagat
2012-03-26 17:45       ` Steven Rostedt
2012-03-27  3:51         ` Rajesh Bhagat
2012-03-26 17:13 ` Steven Rostedt
2012-03-26 18:19   ` Rajesh Bhagat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®