ftrace: Have function graph tracer use global_ops for filtering
Commit 4104d326b6
"ftrace: Remove global function list and call
function directly" cleaned up the global_ops filtering and made
the code simpler. But it left out function graph filtering which
also depended on that code. The function graph filtering still
needs to use global_ops as the filter otherwise it wont filter
at all.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
b1169cc69b
commit
fd06a54990
|
@ -5008,12 +5008,6 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state,
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Just a place holder for function graph */
|
|
||||||
static struct ftrace_ops fgraph_ops __read_mostly = {
|
|
||||||
.func = ftrace_stub,
|
|
||||||
.flags = FTRACE_OPS_FL_STUB | FTRACE_OPS_FL_RECURSION_SAFE,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int ftrace_graph_entry_test(struct ftrace_graph_ent *trace)
|
static int ftrace_graph_entry_test(struct ftrace_graph_ent *trace)
|
||||||
{
|
{
|
||||||
if (!ftrace_ops_test(&global_ops, trace->func, NULL))
|
if (!ftrace_ops_test(&global_ops, trace->func, NULL))
|
||||||
|
@ -5076,7 +5070,10 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc,
|
||||||
ftrace_graph_entry = ftrace_graph_entry_test;
|
ftrace_graph_entry = ftrace_graph_entry_test;
|
||||||
update_function_graph_func();
|
update_function_graph_func();
|
||||||
|
|
||||||
ret = ftrace_startup(&fgraph_ops, FTRACE_START_FUNC_RET);
|
/* Function graph doesn't use the .func field of global_ops */
|
||||||
|
global_ops.flags |= FTRACE_OPS_FL_STUB;
|
||||||
|
|
||||||
|
ret = ftrace_startup(&global_ops, FTRACE_START_FUNC_RET);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&ftrace_lock);
|
mutex_unlock(&ftrace_lock);
|
||||||
|
@ -5094,7 +5091,8 @@ void unregister_ftrace_graph(void)
|
||||||
ftrace_graph_return = (trace_func_graph_ret_t)ftrace_stub;
|
ftrace_graph_return = (trace_func_graph_ret_t)ftrace_stub;
|
||||||
ftrace_graph_entry = ftrace_graph_entry_stub;
|
ftrace_graph_entry = ftrace_graph_entry_stub;
|
||||||
__ftrace_graph_entry = ftrace_graph_entry_stub;
|
__ftrace_graph_entry = ftrace_graph_entry_stub;
|
||||||
ftrace_shutdown(&fgraph_ops, FTRACE_STOP_FUNC_RET);
|
ftrace_shutdown(&global_ops, FTRACE_STOP_FUNC_RET);
|
||||||
|
global_ops.flags &= ~FTRACE_OPS_FL_STUB;
|
||||||
unregister_pm_notifier(&ftrace_suspend_notifier);
|
unregister_pm_notifier(&ftrace_suspend_notifier);
|
||||||
unregister_trace_sched_switch(ftrace_graph_probe_sched_switch, NULL);
|
unregister_trace_sched_switch(ftrace_graph_probe_sched_switch, NULL);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue