|
@@ -2048,7 +2048,6 @@ __init int intel_pmu_init(void)
|
|
|
case 42: /* SandyBridge */
|
|
|
case 45: /* SandyBridge, "Romely-EP" */
|
|
|
x86_add_quirk(intel_sandybridge_quirk);
|
|
|
- case 58: /* IvyBridge */
|
|
|
memcpy(hw_cache_event_ids, snb_hw_cache_event_ids,
|
|
|
sizeof(hw_cache_event_ids));
|
|
|
memcpy(hw_cache_extra_regs, snb_hw_cache_extra_regs,
|
|
@@ -2073,6 +2072,29 @@ __init int intel_pmu_init(void)
|
|
|
|
|
|
pr_cont("SandyBridge events, ");
|
|
|
break;
|
|
|
+ case 58: /* IvyBridge */
|
|
|
+ memcpy(hw_cache_event_ids, snb_hw_cache_event_ids,
|
|
|
+ sizeof(hw_cache_event_ids));
|
|
|
+ memcpy(hw_cache_extra_regs, snb_hw_cache_extra_regs,
|
|
|
+ sizeof(hw_cache_extra_regs));
|
|
|
+
|
|
|
+ intel_pmu_lbr_init_snb();
|
|
|
+
|
|
|
+ x86_pmu.event_constraints = intel_snb_event_constraints;
|
|
|
+ x86_pmu.pebs_constraints = intel_ivb_pebs_event_constraints;
|
|
|
+ x86_pmu.pebs_aliases = intel_pebs_aliases_snb;
|
|
|
+ x86_pmu.extra_regs = intel_snb_extra_regs;
|
|
|
+ /* all extra regs are per-cpu when HT is on */
|
|
|
+ x86_pmu.er_flags |= ERF_HAS_RSP_1;
|
|
|
+ x86_pmu.er_flags |= ERF_NO_HT_SHARING;
|
|
|
+
|
|
|
+ /* UOPS_ISSUED.ANY,c=1,i=1 to count stall cycles */
|
|
|
+ intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] =
|
|
|
+ X86_CONFIG(.event=0x0e, .umask=0x01, .inv=1, .cmask=1);
|
|
|
+
|
|
|
+ pr_cont("IvyBridge events, ");
|
|
|
+ break;
|
|
|
+
|
|
|
|
|
|
default:
|
|
|
switch (x86_pmu.version) {
|