diff options
author | Alexander Shishkin <alexander.shishkin@linux.intel.com> | 2015-01-30 05:39:52 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-04-02 11:14:20 -0400 |
commit | 52ca9ced3f70779589e6ecc329baffe69d8f5f7a (patch) | |
tree | 3e29af8a16f3ba9a8738480775cc58ac0aeb86b2 /arch/x86/include | |
parent | 4807034248bed58d49a4f9f450c024e3b0f58577 (diff) |
perf/x86/intel/pt: Add Intel PT PMU driver
Add support for Intel Processor Trace (PT) to kernel's perf events.
PT is an extension of Intel Architecture that collects information about
software execuction such as control flow, execution modes and timings and
formats it into highly compressed binary packets. Even being compressed,
these packets are generated at hundreds of megabytes per second per core,
which makes it impractical to decode them on the fly in the kernel.
This driver exports trace data by through AUX space in the perf ring
buffer, which is zero-copy mapped into userspace for faster data retrieval.
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kaixu Xia <kaixu.xia@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Robert Richter <rric@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: acme@infradead.org
Cc: adrian.hunter@intel.com
Cc: kan.liang@intel.com
Cc: markus.t.metzger@intel.com
Cc: mathieu.poirier@linaro.org
Link: http://lkml.kernel.org/r/1422614392-114498-1-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/include')
-rw-r--r-- | arch/x86/include/uapi/asm/msr-index.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/x86/include/uapi/asm/msr-index.h b/arch/x86/include/uapi/asm/msr-index.h index 3ce079136c11..1a4eae695ca8 100644 --- a/arch/x86/include/uapi/asm/msr-index.h +++ b/arch/x86/include/uapi/asm/msr-index.h | |||
@@ -74,6 +74,24 @@ | |||
74 | #define MSR_IA32_PERF_CAPABILITIES 0x00000345 | 74 | #define MSR_IA32_PERF_CAPABILITIES 0x00000345 |
75 | #define MSR_PEBS_LD_LAT_THRESHOLD 0x000003f6 | 75 | #define MSR_PEBS_LD_LAT_THRESHOLD 0x000003f6 |
76 | 76 | ||
77 | #define MSR_IA32_RTIT_CTL 0x00000570 | ||
78 | #define RTIT_CTL_TRACEEN BIT(0) | ||
79 | #define RTIT_CTL_OS BIT(2) | ||
80 | #define RTIT_CTL_USR BIT(3) | ||
81 | #define RTIT_CTL_CR3EN BIT(7) | ||
82 | #define RTIT_CTL_TOPA BIT(8) | ||
83 | #define RTIT_CTL_TSC_EN BIT(10) | ||
84 | #define RTIT_CTL_DISRETC BIT(11) | ||
85 | #define RTIT_CTL_BRANCH_EN BIT(13) | ||
86 | #define MSR_IA32_RTIT_STATUS 0x00000571 | ||
87 | #define RTIT_STATUS_CONTEXTEN BIT(1) | ||
88 | #define RTIT_STATUS_TRIGGEREN BIT(2) | ||
89 | #define RTIT_STATUS_ERROR BIT(4) | ||
90 | #define RTIT_STATUS_STOPPED BIT(5) | ||
91 | #define MSR_IA32_RTIT_CR3_MATCH 0x00000572 | ||
92 | #define MSR_IA32_RTIT_OUTPUT_BASE 0x00000560 | ||
93 | #define MSR_IA32_RTIT_OUTPUT_MASK 0x00000561 | ||
94 | |||
77 | #define MSR_MTRRfix64K_00000 0x00000250 | 95 | #define MSR_MTRRfix64K_00000 0x00000250 |
78 | #define MSR_MTRRfix16K_80000 0x00000258 | 96 | #define MSR_MTRRfix16K_80000 0x00000258 |
79 | #define MSR_MTRRfix16K_A0000 0x00000259 | 97 | #define MSR_MTRRfix16K_A0000 0x00000259 |