summaryrefslogtreecommitdiffstats
path: root/include/linux/tracepoint.h
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2015-12-01 20:00:58 -0500
committerIngo Molnar <mingo@kernel.org>2015-12-06 06:56:06 -0500
commitbd2a634d9e852b9b6100f9ae9c3c790b0ff91ce0 (patch)
tree2889189e41e1068cfa0a731683c2f8ae78926b9c /include/linux/tracepoint.h
parent153a4334c439cfb62e1d31cee0c790ba4157813d (diff)
tracepoints: Move struct tracepoint to new tracepoint-defs.h header
Steven recommended open coding access to tracepoint->key to add trace points to headers. Unfortunately this is difficult for some headers (such as x86 asm/msr.h) because including tracepoint.h includes so many other headers that it causes include loops. The main problem is the include of linux/rcupdate.h, which pulls in a lot of other headers. The rcu header is only needed when actually defining trace points. Move the struct tracepoint into a separate tracepoint-defs.h header that can be included without pulling in all of RCU. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Link: http://lkml.kernel.org/r/1449018060-1742-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/tracepoint.h')
-rw-r--r--include/linux/tracepoint.h16
1 files changed, 1 insertions, 15 deletions
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 696a339c592c..f7c732bd5cbd 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -17,26 +17,12 @@
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/rcupdate.h> 19#include <linux/rcupdate.h>
20#include <linux/static_key.h> 20#include <linux/tracepoint-defs.h>
21 21
22struct module; 22struct module;
23struct tracepoint; 23struct tracepoint;
24struct notifier_block; 24struct notifier_block;
25 25
26struct tracepoint_func {
27 void *func;
28 void *data;
29 int prio;
30};
31
32struct tracepoint {
33 const char *name; /* Tracepoint name */
34 struct static_key key;
35 void (*regfunc)(void);
36 void (*unregfunc)(void);
37 struct tracepoint_func __rcu *funcs;
38};
39
40struct trace_enum_map { 26struct trace_enum_map {
41 const char *system; 27 const char *system;
42 const char *enum_string; 28 const char *enum_string;