xref: /linux/kernel/trace/trace_nop.c (revision 93d546399c2b7d66a54d5fbd5eee17de19246bf6)
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 
65