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>
This commit is contained in:
committed by
Frederic Weisbecker
parent
b11c53e12f
commit
0e907c9939
@@ -76,26 +76,9 @@ static void trace_destroy_fields(struct ftrace_event_call *call)
|
|||||||
|
|
||||||
#endif /* CONFIG_MODULES */
|
#endif /* CONFIG_MODULES */
|
||||||
|
|
||||||
static void ftrace_clear_events(void)
|
|
||||||
{
|
|
||||||
struct ftrace_event_call *call;
|
|
||||||
|
|
||||||
mutex_lock(&event_mutex);
|
|
||||||
list_for_each_entry(call, &ftrace_events, list) {
|
|
||||||
|
|
||||||
if (call->enabled) {
|
|
||||||
call->enabled = 0;
|
|
||||||
tracing_stop_cmdline_record();
|
|
||||||
call->unregfunc();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mutex_unlock(&event_mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ftrace_event_enable_disable(struct ftrace_event_call *call,
|
static void ftrace_event_enable_disable(struct ftrace_event_call *call,
|
||||||
int enable)
|
int enable)
|
||||||
{
|
{
|
||||||
|
|
||||||
switch (enable) {
|
switch (enable) {
|
||||||
case 0:
|
case 0:
|
||||||
if (call->enabled) {
|
if (call->enabled) {
|
||||||
@@ -114,6 +97,17 @@ static void ftrace_event_enable_disable(struct ftrace_event_call *call,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ftrace_clear_events(void)
|
||||||
|
{
|
||||||
|
struct ftrace_event_call *call;
|
||||||
|
|
||||||
|
mutex_lock(&event_mutex);
|
||||||
|
list_for_each_entry(call, &ftrace_events, list) {
|
||||||
|
ftrace_event_enable_disable(call, 0);
|
||||||
|
}
|
||||||
|
mutex_unlock(&event_mutex);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* __ftrace_set_clr_event(NULL, NULL, NULL, set) will set/unset all events.
|
* __ftrace_set_clr_event(NULL, NULL, NULL, set) will set/unset all events.
|
||||||
*/
|
*/
|
||||||
@@ -1059,11 +1053,7 @@ static void trace_module_remove_events(struct module *mod)
|
|||||||
list_for_each_entry_safe(call, p, &ftrace_events, list) {
|
list_for_each_entry_safe(call, p, &ftrace_events, list) {
|
||||||
if (call->mod == mod) {
|
if (call->mod == mod) {
|
||||||
found = true;
|
found = true;
|
||||||
if (call->enabled) {
|
ftrace_event_enable_disable(call, 0);
|
||||||
call->enabled = 0;
|
|
||||||
tracing_stop_cmdline_record();
|
|
||||||
call->unregfunc();
|
|
||||||
}
|
|
||||||
if (call->event)
|
if (call->event)
|
||||||
unregister_ftrace_event(call->event);
|
unregister_ftrace_event(call->event);
|
||||||
debugfs_remove_recursive(call->dir);
|
debugfs_remove_recursive(call->dir);
|
||||||
@@ -1265,15 +1255,9 @@ static __init void event_trace_self_tests(void)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
call->enabled = 1;
|
ftrace_event_enable_disable(call, 1);
|
||||||
tracing_start_cmdline_record();
|
|
||||||
call->regfunc();
|
|
||||||
|
|
||||||
event_test_stuff();
|
event_test_stuff();
|
||||||
|
ftrace_event_enable_disable(call, 0);
|
||||||
call->unregfunc();
|
|
||||||
tracing_stop_cmdline_record();
|
|
||||||
call->enabled = 0;
|
|
||||||
|
|
||||||
pr_cont("OK\n");
|
pr_cont("OK\n");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user