tracing: Do not enable function event with enable
authorSteven Rostedt <srostedt@redhat.com>
Thu, 10 May 2012 19:55:43 +0000 (15:55 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 10 May 2012 19:55:43 +0000 (15:55 -0400)
commit9b63776fa3ca96c4ecda76f6fa947b7b0add66ac
treeac90f2faceecab78d7d547c33daef31d4a9e2943
parent20d23aaa31da295378abff4272716e3dfc72baf0
tracing: Do not enable function event with enable

With the adding of function tracing event to perf, it caused a
side effect that produces the following warning when enabling all
events in ftrace:

 # echo 1 > /sys/kernel/debug/tracing/events/enable

[console]
event trace: Could not enable event function

This is because when enabling all events via the debugfs system
it ignores events that do not have a ->reg() function assigned.
This was to skip over the ftrace internal events (as they are
not TRACE_EVENTs). But as the ftrace function event now has
a ->reg() function attached to it for use with perf, it is no
longer ignored.

Worse yet, this ->reg() function is being called when it should
not be. It returns an error and causes the above warning to
be printed.

By adding a new event_call flag (TRACE_EVENT_FL_IGNORE_ENABLE)
and have all ftrace internel event structures have it set,
setting the events/enable will no longe try to incorrectly enable
the function event and does not warn.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace_event.h
kernel/trace/trace_events.c
kernel/trace/trace_export.c