aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/perf_event_intel.c
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2010-03-30 05:28:21 -0400
committerIngo Molnar <mingo@elte.hu>2010-04-02 13:52:03 -0400
commita098f4484bc7dae23f5b62360954007b99b64600 (patch)
tree11d9d6c8f9008ca191cb8d093eb3c9c3c13d99d3 /arch/x86/kernel/cpu/perf_event_intel.c
parent948b1bb89a44561560531394c18da4a99215f772 (diff)
perf, x86: implement ARCH_PERFMON_EVENTSEL bit masks
ARCH_PERFMON_EVENTSEL bit masks are often used in the kernel. This patch adds macros for the bit masks and removes local defines. The function intel_pmu_raw_event() becomes x86_pmu_raw_event() which is generic for x86 models and same also for p6. Duplicate code is removed. Signed-off-by: Robert Richter <robert.richter@amd.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <20100330092821.GH11907@erda.amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu/perf_event_intel.c')
-rw-r--r--arch/x86/kernel/cpu/perf_event_intel.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
index cc4d90a13d53..dfdd6f90fc8e 100644
--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -452,24 +452,6 @@ static __initconst u64 atom_hw_cache_event_ids
452 }, 452 },
453}; 453};
454 454
455static u64 intel_pmu_raw_event(u64 hw_event)
456{
457#define CORE_EVNTSEL_EVENT_MASK 0x000000FFULL
458#define CORE_EVNTSEL_UNIT_MASK 0x0000FF00ULL
459#define CORE_EVNTSEL_EDGE_MASK 0x00040000ULL
460#define CORE_EVNTSEL_INV_MASK 0x00800000ULL
461#define CORE_EVNTSEL_REG_MASK 0xFF000000ULL
462
463#define CORE_EVNTSEL_MASK \
464 (INTEL_ARCH_EVTSEL_MASK | \
465 INTEL_ARCH_UNIT_MASK | \
466 INTEL_ARCH_EDGE_MASK | \
467 INTEL_ARCH_INV_MASK | \
468 INTEL_ARCH_CNT_MASK)
469
470 return hw_event & CORE_EVNTSEL_MASK;
471}
472
473static void intel_pmu_disable_all(void) 455static void intel_pmu_disable_all(void)
474{ 456{
475 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); 457 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
@@ -788,7 +770,7 @@ static __initconst struct x86_pmu core_pmu = {
788 .eventsel = MSR_ARCH_PERFMON_EVENTSEL0, 770 .eventsel = MSR_ARCH_PERFMON_EVENTSEL0,
789 .perfctr = MSR_ARCH_PERFMON_PERFCTR0, 771 .perfctr = MSR_ARCH_PERFMON_PERFCTR0,
790 .event_map = intel_pmu_event_map, 772 .event_map = intel_pmu_event_map,
791 .raw_event = intel_pmu_raw_event, 773 .raw_event = x86_pmu_raw_event,
792 .max_events = ARRAY_SIZE(intel_perfmon_event_map), 774 .max_events = ARRAY_SIZE(intel_perfmon_event_map),
793 .apic = 1, 775 .apic = 1,
794 /* 776 /*
@@ -827,7 +809,7 @@ static __initconst struct x86_pmu intel_pmu = {
827 .eventsel = MSR_ARCH_PERFMON_EVENTSEL0, 809 .eventsel = MSR_ARCH_PERFMON_EVENTSEL0,
828 .perfctr = MSR_ARCH_PERFMON_PERFCTR0, 810 .perfctr = MSR_ARCH_PERFMON_PERFCTR0,
829 .event_map = intel_pmu_event_map, 811 .event_map = intel_pmu_event_map,
830 .raw_event = intel_pmu_raw_event, 812 .raw_event = x86_pmu_raw_event,
831 .max_events = ARRAY_SIZE(intel_perfmon_event_map), 813 .max_events = ARRAY_SIZE(intel_perfmon_event_map),
832 .apic = 1, 814 .apic = 1,
833 /* 815 /*