aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace.c
diff options
context:
space:
mode:
authorAbhishek Sagar <sagar.abhishek@gmail.com>2008-06-21 14:17:53 -0400
committerIngo Molnar <mingo@elte.hu>2008-06-23 16:10:58 -0400
commitecea656d1d5e912d2f3d332657ea4a6d8380f891 (patch)
treefd139cdd762230bf4e55a1341ba29e2b309968b1 /kernel/trace/trace.c
parent785656a41f9a9c0e843a23d1ae05d900b5158f8f (diff)
ftrace: freeze kprobe'd records
Let records identified as being kprobe'd be marked as "frozen". The trouble with records which have a kprobe installed on their mcount call-site is that they don't get updated. So if such a function which is currently being traced gets its tracing disabled due to a new filter rule (or because it was added to the notrace list) then it won't be updated and continue being traced. This patch allows scanning of all frozen records during tracing to check if they should be traced. Signed-off-by: Abhishek Sagar <sagar.abhishek@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r--kernel/trace/trace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 6e9dae7eb418..9ade79369bfb 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -988,6 +988,9 @@ function_trace_call(unsigned long ip, unsigned long parent_ip)
988 if (unlikely(!tracer_enabled)) 988 if (unlikely(!tracer_enabled))
989 return; 989 return;
990 990
991 if (skip_trace(ip))
992 return;
993
991 local_irq_save(flags); 994 local_irq_save(flags);
992 cpu = raw_smp_processor_id(); 995 cpu = raw_smp_processor_id();
993 data = tr->data[cpu]; 996 data = tr->data[cpu];