Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
[sfrench/cifs-2.6.git] / kernel / trace / trace_nop.c
1 /*
2  * nop tracer
3  *
4  * Copyright (C) 2008 Steven Noonan <steven@uplinklabs.net>
5  *
6  */
7
8 #include <linux/module.h>
9 #include <linux/fs.h>
10 #include <linux/debugfs.h>
11 #include <linux/ftrace.h>
12
13 #include "trace.h"
14
15 static struct trace_array       *ctx_trace;
16
17 static void start_nop_trace(struct trace_array *tr)
18 {
19         /* Nothing to do! */
20 }
21
22 static void stop_nop_trace(struct trace_array *tr)
23 {
24         /* Nothing to do! */
25 }
26
27 static void nop_trace_init(struct trace_array *tr)
28 {
29         int cpu;
30         ctx_trace = tr;
31
32         for_each_online_cpu(cpu)
33                 tracing_reset(tr, cpu);
34
35         if (tr->ctrl)
36                 start_nop_trace(tr);
37 }
38
39 static void nop_trace_reset(struct trace_array *tr)
40 {
41         if (tr->ctrl)
42                 stop_nop_trace(tr);
43 }
44
45 static void nop_trace_ctrl_update(struct trace_array *tr)
46 {
47         /* When starting a new trace, reset the buffers */
48         if (tr->ctrl)
49                 start_nop_trace(tr);
50         else
51                 stop_nop_trace(tr);
52 }
53
54 struct tracer nop_trace __read_mostly =
55 {
56         .name           = "nop",
57         .init           = nop_trace_init,
58         .reset          = nop_trace_reset,
59         .ctrl_update    = nop_trace_ctrl_update,
60 #ifdef CONFIG_FTRACE_SELFTEST
61         .selftest       = trace_selftest_startup_nop,
62 #endif
63 };
64