aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/trace_events.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2017-10-10 17:15:47 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-10-16 18:12:21 -0400
commit466c81c45b650deca213fda3d0ec4761667379a9 (patch)
tree3bb3aa06a9adfb347d8026a1ce5339775545b7c8 /include/linux/trace_events.h
parentperf/ftrace: Revert ("perf/ftrace: Fix double traces of perf on ftrace:function") (diff)
downloadlinux-dev-466c81c45b650deca213fda3d0ec4761667379a9.tar.xz
linux-dev-466c81c45b650deca213fda3d0ec4761667379a9.zip
perf/ftrace: Fix function trace events
The function-trace <-> perf interface is a tad messed up. Where all the other trace <-> perf interfaces use a single trace hook registration and use per-cpu RCU based hlist to iterate the events, function-trace actually needs multiple hook registrations in order to minimize function entry patching when filters are present. The end result is that we iterate events both on the trace hook and on the hlist, which results in reporting events multiple times. Since function-trace cannot use the regular scheme, fix it the other way around, use singleton hlists. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/trace_events.h')
-rw-r--r--include/linux/trace_events.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
index a6349b76fd39..ca4e67e466a7 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -173,6 +173,11 @@ enum trace_reg {
TRACE_REG_PERF_UNREGISTER,
TRACE_REG_PERF_OPEN,
TRACE_REG_PERF_CLOSE,
+ /*
+ * These (ADD/DEL) use a 'boolean' return value, where 1 (true) means a
+ * custom action was taken and the default action is not to be
+ * performed.
+ */
TRACE_REG_PERF_ADD,
TRACE_REG_PERF_DEL,
#endif