linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] x86: Don't include asm/processor.h into asm/atomic.h
@ 2015-12-02  1:00 Andi Kleen
  2015-12-02  1:00 ` [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header Andi Kleen
                   ` (4 more replies)
  0 siblings, 5 replies; 24+ messages in thread
From: Andi Kleen @ 2015-12-02  1:00 UTC (permalink / raw)
  To: x86; +Cc: rostedt, peterz, linux-kernel, Andi Kleen

From: Andi Kleen <ak@linux.intel.com>

asm/atomic.h doesn't really need asm/processor.h anymore. Everything
it uses has moved to other header files. So remove that include.

processor.h is a nasty header that includes lots of
other headers and makes it prone to include loops. Removing the
include here makes asm/atomic.h a "leaf" header that can
be safely included in most other headers.

The only fallout is in the lib/atomic tester which relied on
this implicit include. Give it an explicit include.
(the include is in ifdef because the user is also in ifdef)

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 arch/x86/include/asm/atomic.h      | 1 -
 arch/x86/include/asm/atomic64_32.h | 1 -
 lib/atomic64_test.c                | 4 ++++
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
index ae5fb83..3e86742 100644
--- a/arch/x86/include/asm/atomic.h
+++ b/arch/x86/include/asm/atomic.h
@@ -3,7 +3,6 @@
 
 #include <linux/compiler.h>
 #include <linux/types.h>
-#include <asm/processor.h>
 #include <asm/alternative.h>
 #include <asm/cmpxchg.h>
 #include <asm/rmwcc.h>
diff --git a/arch/x86/include/asm/atomic64_32.h b/arch/x86/include/asm/atomic64_32.h
index a11c30b..a984111 100644
--- a/arch/x86/include/asm/atomic64_32.h
+++ b/arch/x86/include/asm/atomic64_32.h
@@ -3,7 +3,6 @@
 
 #include <linux/compiler.h>
 #include <linux/types.h>
-#include <asm/processor.h>
 //#include <asm/cmpxchg.h>
 
 /* An 64bit atomic type */
diff --git a/lib/atomic64_test.c b/lib/atomic64_test.c
index 83c33a5b..d51e25a 100644
--- a/lib/atomic64_test.c
+++ b/lib/atomic64_test.c
@@ -16,6 +16,10 @@
 #include <linux/kernel.h>
 #include <linux/atomic.h>
 
+#ifdef CONFIG_X86
+#include <asm/processor.h>	/* for boot_cpu_has below */
+#endif
+
 #define TEST(bit, op, c_op, val)				\
 do {								\
 	atomic##bit##_set(&v, v0);				\
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 24+ messages in thread
* Adding MSR trace points, new edition
@ 2015-10-21 20:14 Andi Kleen
  2015-10-21 20:14 ` [PATCH 1/4] x86: Don't include asm/processor.h into asm/atomic.h Andi Kleen
  0 siblings, 1 reply; 24+ messages in thread
From: Andi Kleen @ 2015-10-21 20:14 UTC (permalink / raw)
  To: x86; +Cc: rostedt, peterz, linux-kernel

[v2: Move trace header into architecture specific include]

For debugging perf it's very useful to trace CPU MSR read / writes.
perf has a hackish way to do it, but it does not support reads,
requires hacking a header file, and cannot be used with triggers.

MSR accesses are inlined, which makes it difficult to directly
add trace points to them.

I posted a patch some time ago that moved them out of line
to make it possible to trace them.

Steven proposed a different approach of open coding the trace point
static key access. This patchkit implements the different approach.

To avoid include loops, it required some changes in the trace point
and in the x86 headers. These can be considered cleanups in thri own.
This is implemented in the first two patches.

Then the later patch adds the actual trace points, and a pretty
printing script for them, and then finally removes the old hackish
perf MSR tracing.



^ permalink raw reply	[flat|nested] 24+ messages in thread
* Adding MSR trace points, new edition
@ 2015-10-20 18:40 Andi Kleen
  2015-10-20 18:40 ` [PATCH 1/4] x86: Don't include asm/processor.h into asm/atomic.h Andi Kleen
  0 siblings, 1 reply; 24+ messages in thread
From: Andi Kleen @ 2015-10-20 18:40 UTC (permalink / raw)
  To: x86; +Cc: rostedt, peterz, linux-kernel

For debugging perf it's very useful to trace CPU MSR read / writes.
perf has a hackish way to do it, but it does not support reads,
requires hacking a header file, and cannot be used with triggers.

MSR accesses are inlined, which makes it difficult to directly
add trace points to them.

I posted a patch some time ago that moved them out of line
to make it possible to trace them.

Steven proposed a different approach of open coding the trace point
static key access. This patchkit implements the different approach.

To avoid include loops, it required some changes in the trace point
and in the x86 headers. These can be considered cleanups in thri own.
This is implemented in the first two patches.

Then the later patch adds the actual trace points, and a pretty
printing script for them, and then finally removes the old hackish
perf MSR tracing.


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2015-12-06 13:20 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [PATCH 2/4] tracepoints: Move struct tracepoint to new tracepoint-defs.h header Andi Kleen
2015-12-02  1:56   ` 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 1/4] x86: Don't include asm/processor.h into asm/atomic.h Andi Kleen
2015-10-20 18:40 Adding MSR trace points, new edition Andi Kleen
2015-10-20 18:40 ` [PATCH 1/4] x86: Don't include asm/processor.h into asm/atomic.h Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).