diff options
Diffstat (limited to 'arch/x86/kernel/cpu/perf_event.h')
-rw-r--r-- | arch/x86/kernel/cpu/perf_event.h | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/arch/x86/kernel/cpu/perf_event.h b/arch/x86/kernel/cpu/perf_event.h index d0e35ebb2adb..7bb61e32fb29 100644 --- a/arch/x86/kernel/cpu/perf_event.h +++ b/arch/x86/kernel/cpu/perf_event.h | |||
@@ -14,17 +14,7 @@ | |||
14 | 14 | ||
15 | #include <linux/perf_event.h> | 15 | #include <linux/perf_event.h> |
16 | 16 | ||
17 | #if 0 | 17 | /* To enable MSR tracing please use the generic trace points. */ |
18 | #undef wrmsrl | ||
19 | #define wrmsrl(msr, val) \ | ||
20 | do { \ | ||
21 | unsigned int _msr = (msr); \ | ||
22 | u64 _val = (val); \ | ||
23 | trace_printk("wrmsrl(%x, %Lx)\n", (unsigned int)(_msr), \ | ||
24 | (unsigned long long)(_val)); \ | ||
25 | native_write_msr((_msr), (u32)(_val), (u32)(_val >> 32)); \ | ||
26 | } while (0) | ||
27 | #endif | ||
28 | 18 | ||
29 | /* | 19 | /* |
30 | * | NHM/WSM | SNB | | 20 | * | NHM/WSM | SNB | |
@@ -318,6 +308,10 @@ struct cpu_hw_events { | |||
318 | #define INTEL_UEVENT_CONSTRAINT(c, n) \ | 308 | #define INTEL_UEVENT_CONSTRAINT(c, n) \ |
319 | EVENT_CONSTRAINT(c, n, INTEL_ARCH_EVENT_MASK) | 309 | EVENT_CONSTRAINT(c, n, INTEL_ARCH_EVENT_MASK) |
320 | 310 | ||
311 | /* Constraint on specific umask bit only + event */ | ||
312 | #define INTEL_UBIT_EVENT_CONSTRAINT(c, n) \ | ||
313 | EVENT_CONSTRAINT(c, n, ARCH_PERFMON_EVENTSEL_EVENT|(c)) | ||
314 | |||
321 | /* Like UEVENT_CONSTRAINT, but match flags too */ | 315 | /* Like UEVENT_CONSTRAINT, but match flags too */ |
322 | #define INTEL_FLAGS_UEVENT_CONSTRAINT(c, n) \ | 316 | #define INTEL_FLAGS_UEVENT_CONSTRAINT(c, n) \ |
323 | EVENT_CONSTRAINT(c, n, INTEL_ARCH_EVENT_MASK|X86_ALL_EVENT_FLAGS) | 317 | EVENT_CONSTRAINT(c, n, INTEL_ARCH_EVENT_MASK|X86_ALL_EVENT_FLAGS) |
@@ -589,7 +583,8 @@ struct x86_pmu { | |||
589 | bts_active :1, | 583 | bts_active :1, |
590 | pebs :1, | 584 | pebs :1, |
591 | pebs_active :1, | 585 | pebs_active :1, |
592 | pebs_broken :1; | 586 | pebs_broken :1, |
587 | pebs_prec_dist :1; | ||
593 | int pebs_record_size; | 588 | int pebs_record_size; |
594 | void (*drain_pebs)(struct pt_regs *regs); | 589 | void (*drain_pebs)(struct pt_regs *regs); |
595 | struct event_constraint *pebs_constraints; | 590 | struct event_constraint *pebs_constraints; |
@@ -907,6 +902,8 @@ void intel_pmu_lbr_init_hsw(void); | |||
907 | 902 | ||
908 | void intel_pmu_lbr_init_skl(void); | 903 | void intel_pmu_lbr_init_skl(void); |
909 | 904 | ||
905 | void intel_pmu_lbr_init_knl(void); | ||
906 | |||
910 | int intel_pmu_setup_lbr_filter(struct perf_event *event); | 907 | int intel_pmu_setup_lbr_filter(struct perf_event *event); |
911 | 908 | ||
912 | void intel_pt_interrupt(void); | 909 | void intel_pt_interrupt(void); |