From: Andi Kleen <andi@firstfloor.org>
To: x86@kernel.org
Cc: rostedt@goodmis.org, peterz@infradead.org,
linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>
Subject: [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header
Date: Tue, 1 Dec 2015 17:00:58 -0800 [thread overview]
Message-ID: <1449018060-1742-2-git-send-email-andi@firstfloor.org> (raw)
In-Reply-To: <1449018060-1742-1-git-send-email-andi@firstfloor.org>
From: Andi Kleen <ak@linux.intel.com>
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>
---
include/linux/tracepoint-defs.h | 27 +++++++++++++++++++++++++++
include/linux/tracepoint.h | 16 +---------------
2 files changed, 28 insertions(+), 15 deletions(-)
create mode 100644 include/linux/tracepoint-defs.h
diff --git a/include/linux/tracepoint-defs.h b/include/linux/tracepoint-defs.h
new file mode 100644
index 0000000..e1ee97c
--- /dev/null
+++ b/include/linux/tracepoint-defs.h
@@ -0,0 +1,27 @@
+#ifndef TRACEPOINT_DEFS_H
+#define TRACEPOINT_DEFS_H 1
+
+/*
+ * File can be included directly by headers who only want to access
+ * tracepoint->key to guard out of line trace calls. Otherwise
+ * linux/tracepoint.h should be used.
+ */
+
+#include <linux/atomic.h>
+#include <linux/static_key.h>
+
+struct tracepoint_func {
+ void *func;
+ void *data;
+ int prio;
+};
+
+struct tracepoint {
+ const char *name; /* Tracepoint name */
+ struct static_key key;
+ void (*regfunc)(void);
+ void (*unregfunc)(void);
+ struct tracepoint_func __rcu *funcs;
+};
+
+#endif
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 696a339c..f7c732b 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -17,26 +17,12 @@
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/rcupdate.h>
-#include <linux/static_key.h>
+#include <linux/tracepoint-defs.h>
struct module;
struct tracepoint;
struct notifier_block;
-struct tracepoint_func {
- void *func;
- void *data;
- int prio;
-};
-
-struct tracepoint {
- const char *name; /* Tracepoint name */
- struct static_key key;
- void (*regfunc)(void);
- void (*unregfunc)(void);
- struct tracepoint_func __rcu *funcs;
-};
-
struct trace_enum_map {
const char *system;
const char *enum_string;
--
2.4.3
next prev parent reply other threads:[~2015-12-02 1:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-02 1:00 [PATCH 1/4] x86: Don't include asm/processor.h into asm/atomic.h Andi Kleen
2015-12-02 1:00 ` Andi Kleen [this message]
2015-12-02 1:56 ` [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header Steven Rostedt
2015-12-04 11:59 ` [tip:perf/core] " tip-bot for Andi Kleen
2015-12-06 13:18 ` tip-bot for Andi Kleen
2015-12-02 1:00 ` [PATCH 3/4] x86: Add trace point for MSR accesses Andi Kleen
2015-12-02 2:03 ` Steven Rostedt
2015-12-04 11:59 ` [tip:perf/core] x86, tracing, perf: " tip-bot for Andi Kleen
2015-12-04 12:11 ` Borislav Petkov
2015-12-04 18:28 ` Andi Kleen
2015-12-04 18:30 ` Borislav Petkov
2015-12-04 22:18 ` Andi Kleen
2015-12-04 22:27 ` Borislav Petkov
2015-12-04 22:35 ` H. Peter Anvin
2015-12-04 22:48 ` Borislav Petkov
2015-12-04 22:57 ` H. Peter Anvin
2015-12-06 13:19 ` tip-bot for Andi Kleen
2015-12-02 1:01 ` [PATCH 4/4] perf, x86: Remove old MSR perf tracing code Andi Kleen
2015-12-04 12:00 ` [tip:perf/core] perf/x86: " tip-bot for Andi Kleen
2015-12-06 13:19 ` tip-bot for Andi Kleen
2015-12-04 11:58 ` [tip:perf/core] x86/headers: Don't include asm/processor.h in asm /atomic.h tip-bot for Andi Kleen
2015-12-06 13:18 ` tip-bot for Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2015-10-21 20:14 Adding MSR trace points, new edition Andi Kleen
2015-10-21 20:14 ` [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header Andi Kleen
2015-10-20 18:40 Adding MSR trace points, new edition Andi Kleen
2015-10-20 18:40 ` [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1449018060-1742-2-git-send-email-andi@firstfloor.org \
--to=andi@firstfloor.org \
--cc=ak@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.