]>
Commit | Line | Data |
---|---|---|
fb1b6d8b SN |
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 | { | |
35cb5ed0 | 29 | int cpu; |
fb1b6d8b SN |
30 | ctx_trace = tr; |
31 | ||
35cb5ed0 FW |
32 | for_each_online_cpu(cpu) |
33 | tracing_reset(tr->data[cpu]); | |
34 | ||
fb1b6d8b SN |
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 | ||
43a15386 | 54 | struct tracer nop_trace __read_mostly = |
fb1b6d8b SN |
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 |