diff options
author | Zhaolei <zhaolei@cn.fujitsu.com> | 2009-05-25 06:13:59 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2009-05-25 21:30:31 -0400 |
commit | 0e907c99391362385c8e3af2c43b904dd1fd5d73 (patch) | |
tree | 86f1fc73644d4a7db5e1cbc96434aa89d02879cc /kernel/trace/trace_events.c | |
parent | b11c53e12f94a46b50bccc7a1a953d7ca1d54a31 (diff) |
ftrace: clean up of using ftrace_event_enable_disable()
Always use ftrace_event_enable_disable() to enable/disable an event
so that we can factorize out the event toggling code.
[ Impact: factorize and cleanup event tracing code ]
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <4A14FDFE.2080402@cn.fujitsu.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'kernel/trace/trace_events.c')
-rw-r--r-- | kernel/trace/trace_events.c | 44 |
1 files changed, 14 insertions, 30 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 9b246eb01d5f..6c81f9c21426 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
@@ -76,26 +76,9 @@ static void trace_destroy_fields(struct ftrace_event_call *call) | |||
76 | 76 | ||
77 | #endif /* CONFIG_MODULES */ | 77 | #endif /* CONFIG_MODULES */ |
78 | 78 | ||
79 | static void ftrace_clear_events(void) | ||
80 | { | ||
81 | struct ftrace_event_call *call; | ||
82 | |||
83 | mutex_lock(&event_mutex); | ||
84 | list_for_each_entry(call, &ftrace_events, list) { | ||
85 | |||
86 | if (call->enabled) { | ||
87 | call->enabled = 0; | ||
88 | tracing_stop_cmdline_record(); | ||
89 | call->unregfunc(); | ||
90 | } | ||
91 | } | ||
92 | mutex_unlock(&event_mutex); | ||
93 | } | ||
94 | |||
95 | static void ftrace_event_enable_disable(struct ftrace_event_call *call, | 79 | static void ftrace_event_enable_disable(struct ftrace_event_call *call, |
96 | int enable) | 80 | int enable) |
97 | { | 81 | { |
98 | |||
99 | switch (enable) { | 82 | switch (enable) { |
100 | case 0: | 83 | case 0: |
101 | if (call->enabled) { | 84 | if (call->enabled) { |
@@ -114,6 +97,17 @@ static void ftrace_event_enable_disable(struct ftrace_event_call *call, | |||
114 | } | 97 | } |
115 | } | 98 | } |
116 | 99 | ||
100 | static void ftrace_clear_events(void) | ||
101 | { | ||
102 | struct ftrace_event_call *call; | ||
103 | |||
104 | mutex_lock(&event_mutex); | ||
105 | list_for_each_entry(call, &ftrace_events, list) { | ||
106 | ftrace_event_enable_disable(call, 0); | ||
107 | } | ||
108 | mutex_unlock(&event_mutex); | ||
109 | } | ||
110 | |||
117 | /* | 111 | /* |
118 | * __ftrace_set_clr_event(NULL, NULL, NULL, set) will set/unset all events. | 112 | * __ftrace_set_clr_event(NULL, NULL, NULL, set) will set/unset all events. |
119 | */ | 113 | */ |
@@ -1059,11 +1053,7 @@ static void trace_module_remove_events(struct module *mod) | |||
1059 | list_for_each_entry_safe(call, p, &ftrace_events, list) { | 1053 | list_for_each_entry_safe(call, p, &ftrace_events, list) { |
1060 | if (call->mod == mod) { | 1054 | if (call->mod == mod) { |
1061 | found = true; | 1055 | found = true; |
1062 | if (call->enabled) { | 1056 | ftrace_event_enable_disable(call, 0); |
1063 | call->enabled = 0; | ||
1064 | tracing_stop_cmdline_record(); | ||
1065 | call->unregfunc(); | ||
1066 | } | ||
1067 | if (call->event) | 1057 | if (call->event) |
1068 | unregister_ftrace_event(call->event); | 1058 | unregister_ftrace_event(call->event); |
1069 | debugfs_remove_recursive(call->dir); | 1059 | debugfs_remove_recursive(call->dir); |
@@ -1265,15 +1255,9 @@ static __init void event_trace_self_tests(void) | |||
1265 | continue; | 1255 | continue; |
1266 | } | 1256 | } |
1267 | 1257 | ||
1268 | call->enabled = 1; | 1258 | ftrace_event_enable_disable(call, 1); |
1269 | tracing_start_cmdline_record(); | ||
1270 | call->regfunc(); | ||
1271 | |||
1272 | event_test_stuff(); | 1259 | event_test_stuff(); |
1273 | 1260 | ftrace_event_enable_disable(call, 0); | |
1274 | call->unregfunc(); | ||
1275 | tracing_stop_cmdline_record(); | ||
1276 | call->enabled = 0; | ||
1277 | 1261 | ||
1278 | pr_cont("OK\n"); | 1262 | pr_cont("OK\n"); |
1279 | } | 1263 | } |