summaryrefslogtreecommitdiffstats
path: root/src/plugins/perfmon/perfmon_intel_wsm_ex.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/perfmon/perfmon_intel_wsm_ex.c')
-rw-r--r--src/plugins/perfmon/perfmon_intel_wsm_ex.c1491
1 files changed, 1491 insertions, 0 deletions
diff --git a/src/plugins/perfmon/perfmon_intel_wsm_ex.c b/src/plugins/perfmon/perfmon_intel_wsm_ex.c
new file mode 100644
index 00000000000..3406c0c2d81
--- /dev/null
+++ b/src/plugins/perfmon/perfmon_intel_wsm_ex.c
@@ -0,0 +1,1491 @@
+
+#include <perfmon/perfmon_intel.h>
+
+static perfmon_intel_pmc_cpu_model_t cpu_model_table[] = {
+ {0x2F, 0x00, 0},
+
+};
+
+static perfmon_intel_pmc_event_t event_table[] = {
+ {
+ .event_code = {0x14},
+ .umask = 0x1,
+ .event_name = "arith.cycles_div_busy",
+ },
+ {
+ .event_code = {0x14},
+ .umask = 0x1,
+ .event_name = "arith.div",
+ },
+ {
+ .event_code = {0x14},
+ .umask = 0x2,
+ .event_name = "arith.mul",
+ },
+ {
+ .event_code = {0xE6},
+ .umask = 0x2,
+ .event_name = "baclear.bad_target",
+ },
+ {
+ .event_code = {0xE6},
+ .umask = 0x1,
+ .event_name = "baclear.clear",
+ },
+ {
+ .event_code = {0xA7},
+ .umask = 0x1,
+ .event_name = "baclear_force_iq",
+ },
+ {
+ .event_code = {0xE8},
+ .umask = 0x1,
+ .event_name = "bpu_clears.early",
+ },
+ {
+ .event_code = {0xE8},
+ .umask = 0x2,
+ .event_name = "bpu_clears.late",
+ },
+ {
+ .event_code = {0xE5},
+ .umask = 0x1,
+ .event_name = "bpu_missed_call_ret",
+ },
+ {
+ .event_code = {0xE0},
+ .umask = 0x1,
+ .event_name = "br_inst_decoded",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x7F,
+ .event_name = "br_inst_exec.any",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x1,
+ .event_name = "br_inst_exec.cond",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x2,
+ .event_name = "br_inst_exec.direct",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x10,
+ .event_name = "br_inst_exec.direct_near_call",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x20,
+ .event_name = "br_inst_exec.indirect_near_call",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x4,
+ .event_name = "br_inst_exec.indirect_non_call",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x30,
+ .event_name = "br_inst_exec.near_calls",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x7,
+ .event_name = "br_inst_exec.non_calls",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x8,
+ .event_name = "br_inst_exec.return_near",
+ },
+ {
+ .event_code = {0x88},
+ .umask = 0x40,
+ .event_name = "br_inst_exec.taken",
+ },
+ {
+ .event_code = {0xC4},
+ .umask = 0x4,
+ .event_name = "br_inst_retired.all_branches",
+ },
+ {
+ .event_code = {0xC4},
+ .umask = 0x1,
+ .event_name = "br_inst_retired.conditional",
+ },
+ {
+ .event_code = {0xC4},
+ .umask = 0x2,
+ .event_name = "br_inst_retired.near_call",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x7F,
+ .event_name = "br_misp_exec.any",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x1,
+ .event_name = "br_misp_exec.cond",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x2,
+ .event_name = "br_misp_exec.direct",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x10,
+ .event_name = "br_misp_exec.direct_near_call",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x20,
+ .event_name = "br_misp_exec.indirect_near_call",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x4,
+ .event_name = "br_misp_exec.indirect_non_call",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x30,
+ .event_name = "br_misp_exec.near_calls",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x7,
+ .event_name = "br_misp_exec.non_calls",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x8,
+ .event_name = "br_misp_exec.return_near",
+ },
+ {
+ .event_code = {0x89},
+ .umask = 0x40,
+ .event_name = "br_misp_exec.taken",
+ },
+ {
+ .event_code = {0xC5},
+ .umask = 0x4,
+ .event_name = "br_misp_retired.all_branches",
+ },
+ {
+ .event_code = {0xC5},
+ .umask = 0x1,
+ .event_name = "br_misp_retired.conditional",
+ },
+ {
+ .event_code = {0xC5},
+ .umask = 0x2,
+ .event_name = "br_misp_retired.near_call",
+ },
+ {
+ .event_code = {0x63},
+ .umask = 0x2,
+ .event_name = "cache_lock_cycles.l1d",
+ },
+ {
+ .event_code = {0x63},
+ .umask = 0x1,
+ .event_name = "cache_lock_cycles.l1d_l2",
+ },
+ {
+ .event_code = {0x0},
+ .umask = 0x0,
+ .event_name = "cpu_clk_unhalted.ref",
+ },
+ {
+ .event_code = {0x3C},
+ .umask = 0x1,
+ .event_name = "cpu_clk_unhalted.ref_p",
+ },
+ {
+ .event_code = {0x0},
+ .umask = 0x0,
+ .event_name = "cpu_clk_unhalted.thread",
+ },
+ {
+ .event_code = {0x3C},
+ .umask = 0x0,
+ .event_name = "cpu_clk_unhalted.thread_p",
+ },
+ {
+ .event_code = {0x3C},
+ .umask = 0x0,
+ .event_name = "cpu_clk_unhalted.total_cycles",
+ },
+ {
+ .event_code = {0x8},
+ .umask = 0x1,
+ .event_name = "dtlb_load_misses.any",
+ },
+ {
+ .event_code = {0x8},
+ .umask = 0x80,
+ .event_name = "dtlb_load_misses.large_walk_completed",
+ },
+ {
+ .event_code = {0x8},
+ .umask = 0x20,
+ .event_name = "dtlb_load_misses.pde_miss",
+ },
+ {
+ .event_code = {0x8},
+ .umask = 0x10,
+ .event_name = "dtlb_load_misses.stlb_hit",
+ },
+ {
+ .event_code = {0x8},
+ .umask = 0x2,
+ .event_name = "dtlb_load_misses.walk_completed",
+ },
+ {
+ .event_code = {0x8},
+ .umask = 0x4,
+ .event_name = "dtlb_load_misses.walk_cycles",
+ },
+ {
+ .event_code = {0x49},
+ .umask = 0x1,
+ .event_name = "dtlb_misses.any",
+ },
+ {
+ .event_code = {0x49},
+ .umask = 0x80,
+ .event_name = "dtlb_misses.large_walk_completed",
+ },
+ {
+ .event_code = {0x49},
+ .umask = 0x20,
+ .event_name = "dtlb_misses.pde_miss",
+ },
+ {
+ .event_code = {0x49},
+ .umask = 0x10,
+ .event_name = "dtlb_misses.stlb_hit",
+ },
+ {
+ .event_code = {0x49},
+ .umask = 0x2,
+ .event_name = "dtlb_misses.walk_completed",
+ },
+ {
+ .event_code = {0x49},
+ .umask = 0x4,
+ .event_name = "dtlb_misses.walk_cycles",
+ },
+ {
+ .event_code = {0x4F},
+ .umask = 0x10,
+ .event_name = "ept.walk_cycles",
+ },
+ {
+ .event_code = {0xD5},
+ .umask = 0x1,
+ .event_name = "es_reg_renames",
+ },
+ {
+ .event_code = {0xF7},
+ .umask = 0x1,
+ .event_name = "fp_assist.all",
+ },
+ {
+ .event_code = {0xF7},
+ .umask = 0x4,
+ .event_name = "fp_assist.input",
+ },
+ {
+ .event_code = {0xF7},
+ .umask = 0x2,
+ .event_name = "fp_assist.output",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x2,
+ .event_name = "fp_comp_ops_exe.mmx",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x80,
+ .event_name = "fp_comp_ops_exe.sse_double_precision",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x4,
+ .event_name = "fp_comp_ops_exe.sse_fp",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x10,
+ .event_name = "fp_comp_ops_exe.sse_fp_packed",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x20,
+ .event_name = "fp_comp_ops_exe.sse_fp_scalar",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x40,
+ .event_name = "fp_comp_ops_exe.sse_single_precision",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x8,
+ .event_name = "fp_comp_ops_exe.sse2_integer",
+ },
+ {
+ .event_code = {0x10},
+ .umask = 0x1,
+ .event_name = "fp_comp_ops_exe.x87",
+ },
+ {
+ .event_code = {0xCC},
+ .umask = 0x3,
+ .event_name = "fp_mmx_trans.any",
+ },
+ {
+ .event_code = {0xCC},
+ .umask = 0x1,
+ .event_name = "fp_mmx_trans.to_fp",
+ },
+ {
+ .event_code = {0xCC},
+ .umask = 0x2,
+ .event_name = "fp_mmx_trans.to_mmx",
+ },
+ {
+ .event_code = {0x87},
+ .umask = 0xF,
+ .event_name = "ild_stall.any",
+ },
+ {
+ .event_code = {0x87},
+ .umask = 0x4,
+ .event_name = "ild_stall.iq_full",
+ },
+ {
+ .event_code = {0x87},
+ .umask = 0x1,
+ .event_name = "ild_stall.lcp",
+ },
+ {
+ .event_code = {0x87},
+ .umask = 0x2,
+ .event_name = "ild_stall.mru",
+ },
+ {
+ .event_code = {0x87},
+ .umask = 0x8,
+ .event_name = "ild_stall.regen",
+ },
+ {
+ .event_code = {0x18},
+ .umask = 0x1,
+ .event_name = "inst_decoded.dec0",
+ },
+ {
+ .event_code = {0x1E},
+ .umask = 0x1,
+ .event_name = "inst_queue_write_cycles",
+ },
+ {
+ .event_code = {0x17},
+ .umask = 0x1,
+ .event_name = "inst_queue_writes",
+ },
+ {
+ .event_code = {0x0},
+ .umask = 0x0,
+ .event_name = "inst_retired.any",
+ },
+ {
+ .event_code = {0xC0},
+ .umask = 0x1,
+ .event_name = "inst_retired.any_p",
+ },
+ {
+ .event_code = {0xC0},
+ .umask = 0x4,
+ .event_name = "inst_retired.mmx",
+ },
+ {
+ .event_code = {0xC0},
+ .umask = 0x1,
+ .event_name = "inst_retired.total_cycles",
+ },
+ {
+ .event_code = {0xC0},
+ .umask = 0x2,
+ .event_name = "inst_retired.x87",
+ },
+ {
+ .event_code = {0x6C},
+ .umask = 0x1,
+ .event_name = "io_transactions",
+ },
+ {
+ .event_code = {0xAE},
+ .umask = 0x1,
+ .event_name = "itlb_flush",
+ },
+ {
+ .event_code = {0xC8},
+ .umask = 0x20,
+ .event_name = "itlb_miss_retired",
+ },
+ {
+ .event_code = {0x85},
+ .umask = 0x1,
+ .event_name = "itlb_misses.any",
+ },
+ {
+ .event_code = {0x85},
+ .umask = 0x80,
+ .event_name = "itlb_misses.large_walk_completed",
+ },
+ {
+ .event_code = {0x85},
+ .umask = 0x2,
+ .event_name = "itlb_misses.walk_completed",
+ },
+ {
+ .event_code = {0x85},
+ .umask = 0x4,
+ .event_name = "itlb_misses.walk_cycles",
+ },
+ {
+ .event_code = {0x51},
+ .umask = 0x4,
+ .event_name = "l1d.m_evict",
+ },
+ {
+ .event_code = {0x51},
+ .umask = 0x2,
+ .event_name = "l1d.m_repl",
+ },
+ {
+ .event_code = {0x51},
+ .umask = 0x8,
+ .event_name = "l1d.m_snoop_evict",
+ },
+ {
+ .event_code = {0x51},
+ .umask = 0x1,
+ .event_name = "l1d.repl",
+ },
+ {
+ .event_code = {0x52},
+ .umask = 0x1,
+ .event_name = "l1d_cache_prefetch_lock_fb_hit",
+ },
+ {
+ .event_code = {0x4E},
+ .umask = 0x2,
+ .event_name = "l1d_prefetch.miss",
+ },
+ {
+ .event_code = {0x4E},
+ .umask = 0x1,
+ .event_name = "l1d_prefetch.requests",
+ },
+ {
+ .event_code = {0x4E},
+ .umask = 0x4,
+ .event_name = "l1d_prefetch.triggers",
+ },
+ {
+ .event_code = {0x28},
+ .umask = 0x4,
+ .event_name = "l1d_wb_l2.e_state",
+ },
+ {
+ .event_code = {0x28},
+ .umask = 0x1,
+ .event_name = "l1d_wb_l2.i_state",
+ },
+ {
+ .event_code = {0x28},
+ .umask = 0x8,
+ .event_name = "l1d_wb_l2.m_state",
+ },
+ {
+ .event_code = {0x28},
+ .umask = 0xF,
+ .event_name = "l1d_wb_l2.mesi",
+ },
+ {
+ .event_code = {0x28},
+ .umask = 0x2,
+ .event_name = "l1d_wb_l2.s_state",
+ },
+ {
+ .event_code = {0x80},
+ .umask = 0x4,
+ .event_name = "l1i.cycles_stalled",
+ },
+ {
+ .event_code = {0x80},
+ .umask = 0x1,
+ .event_name = "l1i.hits",
+ },
+ {
+ .event_code = {0x80},
+ .umask = 0x2,
+ .event_name = "l1i.misses",
+ },
+ {
+ .event_code = {0x80},
+ .umask = 0x3,
+ .event_name = "l1i.reads",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0xFF,
+ .event_name = "l2_data_rqsts.any",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x4,
+ .event_name = "l2_data_rqsts.demand.e_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x1,
+ .event_name = "l2_data_rqsts.demand.i_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x8,
+ .event_name = "l2_data_rqsts.demand.m_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0xF,
+ .event_name = "l2_data_rqsts.demand.mesi",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x2,
+ .event_name = "l2_data_rqsts.demand.s_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x40,
+ .event_name = "l2_data_rqsts.prefetch.e_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x10,
+ .event_name = "l2_data_rqsts.prefetch.i_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x80,
+ .event_name = "l2_data_rqsts.prefetch.m_state",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0xF0,
+ .event_name = "l2_data_rqsts.prefetch.mesi",
+ },
+ {
+ .event_code = {0x26},
+ .umask = 0x20,
+ .event_name = "l2_data_rqsts.prefetch.s_state",
+ },
+ {
+ .event_code = {0xF1},
+ .umask = 0x7,
+ .event_name = "l2_lines_in.any",
+ },
+ {
+ .event_code = {0xF1},
+ .umask = 0x4,
+ .event_name = "l2_lines_in.e_state",
+ },
+ {
+ .event_code = {0xF1},
+ .umask = 0x2,
+ .event_name = "l2_lines_in.s_state",
+ },
+ {
+ .event_code = {0xF2},
+ .umask = 0xF,
+ .event_name = "l2_lines_out.any",
+ },
+ {
+ .event_code = {0xF2},
+ .umask = 0x1,
+ .event_name = "l2_lines_out.demand_clean",
+ },
+ {
+ .event_code = {0xF2},
+ .umask = 0x2,
+ .event_name = "l2_lines_out.demand_dirty",
+ },
+ {
+ .event_code = {0xF2},
+ .umask = 0x4,
+ .event_name = "l2_lines_out.prefetch_clean",
+ },
+ {
+ .event_code = {0xF2},
+ .umask = 0x8,
+ .event_name = "l2_lines_out.prefetch_dirty",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x10,
+ .event_name = "l2_rqsts.ifetch_hit",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x20,
+ .event_name = "l2_rqsts.ifetch_miss",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x30,
+ .event_name = "l2_rqsts.ifetches",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x1,
+ .event_name = "l2_rqsts.ld_hit",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x2,
+ .event_name = "l2_rqsts.ld_miss",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x3,
+ .event_name = "l2_rqsts.loads",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0xAA,
+ .event_name = "l2_rqsts.miss",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x40,
+ .event_name = "l2_rqsts.prefetch_hit",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x80,
+ .event_name = "l2_rqsts.prefetch_miss",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0xC0,
+ .event_name = "l2_rqsts.prefetches",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0xFF,
+ .event_name = "l2_rqsts.references",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x4,
+ .event_name = "l2_rqsts.rfo_hit",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0x8,
+ .event_name = "l2_rqsts.rfo_miss",
+ },
+ {
+ .event_code = {0x24},
+ .umask = 0xC,
+ .event_name = "l2_rqsts.rfos",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x80,
+ .event_name = "l2_transactions.any",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x20,
+ .event_name = "l2_transactions.fill",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x4,
+ .event_name = "l2_transactions.ifetch",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x10,
+ .event_name = "l2_transactions.l1d_wb",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x1,
+ .event_name = "l2_transactions.load",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x8,
+ .event_name = "l2_transactions.prefetch",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x2,
+ .event_name = "l2_transactions.rfo",
+ },
+ {
+ .event_code = {0xF0},
+ .umask = 0x40,
+ .event_name = "l2_transactions.wb",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x40,
+ .event_name = "l2_write.lock.e_state",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0xE0,
+ .event_name = "l2_write.lock.hit",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x10,
+ .event_name = "l2_write.lock.i_state",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x80,
+ .event_name = "l2_write.lock.m_state",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0xF0,
+ .event_name = "l2_write.lock.mesi",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x20,
+ .event_name = "l2_write.lock.s_state",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0xE,
+ .event_name = "l2_write.rfo.hit",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x1,
+ .event_name = "l2_write.rfo.i_state",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x8,
+ .event_name = "l2_write.rfo.m_state",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0xF,
+ .event_name = "l2_write.rfo.mesi",
+ },
+ {
+ .event_code = {0x27},
+ .umask = 0x2,
+ .event_name = "l2_write.rfo.s_state",
+ },
+ {
+ .event_code = {0x82},
+ .umask = 0x1,
+ .event_name = "large_itlb.hit",
+ },
+ {
+ .event_code = {0x3},
+ .umask = 0x2,
+ .event_name = "load_block.overlap_store",
+ },
+ {
+ .event_code = {0x13},
+ .umask = 0x7,
+ .event_name = "load_dispatch.any",
+ },
+ {
+ .event_code = {0x13},
+ .umask = 0x4,
+ .event_name = "load_dispatch.mob",
+ },
+ {
+ .event_code = {0x13},
+ .umask = 0x1,
+ .event_name = "load_dispatch.rs",
+ },
+ {
+ .event_code = {0x13},
+ .umask = 0x2,
+ .event_name = "load_dispatch.rs_delayed",
+ },
+ {
+ .event_code = {0x4C},
+ .umask = 0x1,
+ .event_name = "load_hit_pre",
+ },
+ {
+ .event_code = {0x2E},
+ .umask = 0x41,
+ .event_name = "longest_lat_cache.miss",
+ },
+ {
+ .event_code = {0x2E},
+ .umask = 0x4F,
+ .event_name = "longest_lat_cache.reference",
+ },
+ {
+ .event_code = {0xA8},
+ .umask = 0x1,
+ .event_name = "lsd.active",
+ },
+ {
+ .event_code = {0xA8},
+ .umask = 0x1,
+ .event_name = "lsd.inactive",
+ },
+ {
+ .event_code = {0x20},
+ .umask = 0x1,
+ .event_name = "lsd_overflow",
+ },
+ {
+ .event_code = {0xC3},
+ .umask = 0x1,
+ .event_name = "machine_clears.cycles",
+ },
+ {
+ .event_code = {0xC3},
+ .umask = 0x2,
+ .event_name = "machine_clears.mem_order",
+ },
+ {
+ .event_code = {0xC3},
+ .umask = 0x4,
+ .event_name = "machine_clears.smc",
+ },
+ {
+ .event_code = {0xD0},
+ .umask = 0x1,
+ .event_name = "macro_insts.decoded",
+ },
+ {
+ .event_code = {0xA6},
+ .umask = 0x1,
+ .event_name = "macro_insts.fusions_decoded",
+ },
+ {
+ .event_code = {0xB},
+ .umask = 0x1,
+ .event_name = "mem_inst_retired.loads",
+ },
+ {
+ .event_code = {0xB},
+ .umask = 0x2,
+ .event_name = "mem_inst_retired.stores",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x80,
+ .event_name = "mem_load_retired.dtlb_miss",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x40,
+ .event_name = "mem_load_retired.hit_lfb",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x1,
+ .event_name = "mem_load_retired.l1d_hit",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x2,
+ .event_name = "mem_load_retired.l2_hit",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x10,
+ .event_name = "mem_load_retired.llc_miss",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x4,
+ .event_name = "mem_load_retired.llc_unshared_hit",
+ },
+ {
+ .event_code = {0xCB},
+ .umask = 0x8,
+ .event_name = "mem_load_retired.other_core_l2_hit_hitm",
+ },
+ {
+ .event_code = {0xC},
+ .umask = 0x1,
+ .event_name = "mem_store_retired.dtlb_miss",
+ },
+ {
+ .event_code = {0xF},
+ .umask = 0x2,
+ .event_name = "mem_uncore_retired.local_hitm",
+ },
+ {
+ .event_code = {0xF},
+ .umask = 0x8,
+ .event_name = "mem_uncore_retired.local_dram_and_remote_cache_hit",
+ },
+ {
+ .event_code = {0xF},
+ .umask = 0x20,
+ .event_name = "mem_uncore_retired.remote_dram",
+ },
+ {
+ .event_code = {0xF},
+ .umask = 0x80,
+ .event_name = "mem_uncore_retired.uncacheable",
+ },
+ {
+ .event_code = {0xF},
+ .umask = 0x4,
+ .event_name = "mem_uncore_retired.remote_hitm",
+ },
+ {
+ .event_code = {0x5},
+ .umask = 0x2,
+ .event_name = "misalign_mem_ref.store",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x80,
+ .event_name = "offcore_requests.any",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x8,
+ .event_name = "offcore_requests.any.read",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x10,
+ .event_name = "offcore_requests.any.rfo",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x2,
+ .event_name = "offcore_requests.demand.read_code",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x1,
+ .event_name = "offcore_requests.demand.read_data",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x4,
+ .event_name = "offcore_requests.demand.rfo",
+ },
+ {
+ .event_code = {0xB0},
+ .umask = 0x40,
+ .event_name = "offcore_requests.l1d_writeback",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x8,
+ .event_name = "offcore_requests_outstanding.any.read",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x8,
+ .event_name = "offcore_requests_outstanding.any.read_not_empty",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x2,
+ .event_name = "offcore_requests_outstanding.demand.read_code",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x2,
+ .event_name = "offcore_requests_outstanding.demand.read_code_not_empty",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x1,
+ .event_name = "offcore_requests_outstanding.demand.read_data",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x1,
+ .event_name = "offcore_requests_outstanding.demand.read_data_not_empty",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x4,
+ .event_name = "offcore_requests_outstanding.demand.rfo",
+ },
+ {
+ .event_code = {0x60},
+ .umask = 0x4,
+ .event_name = "offcore_requests_outstanding.demand.rfo_not_empty",
+ },
+ {
+ .event_code = {0xB2},
+ .umask = 0x1,
+ .event_name = "offcore_requests_sq_full",
+ },
+ {
+ .event_code = {0x7},
+ .umask = 0x1,
+ .event_name = "partial_address_alias",
+ },
+ {
+ .event_code = {0xD2},
+ .umask = 0xF,
+ .event_name = "rat_stalls.any",
+ },
+ {
+ .event_code = {0xD2},
+ .umask = 0x1,
+ .event_name = "rat_stalls.flags",
+ },
+ {
+ .event_code = {0xD2},
+ .umask = 0x2,
+ .event_name = "rat_stalls.registers",
+ },
+ {
+ .event_code = {0xD2},
+ .umask = 0x4,
+ .event_name = "rat_stalls.rob_read_port",
+ },
+ {
+ .event_code = {0xD2},
+ .umask = 0x8,
+ .event_name = "rat_stalls.scoreboard",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x1,
+ .event_name = "resource_stalls.any",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x20,
+ .event_name = "resource_stalls.fpcw",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x2,
+ .event_name = "resource_stalls.load",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x40,
+ .event_name = "resource_stalls.mxcsr",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x80,
+ .event_name = "resource_stalls.other",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x10,
+ .event_name = "resource_stalls.rob_full",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x4,
+ .event_name = "resource_stalls.rs_full",
+ },
+ {
+ .event_code = {0xA2},
+ .umask = 0x8,
+ .event_name = "resource_stalls.store",
+ },
+ {
+ .event_code = {0x4},
+ .umask = 0x7,
+ .event_name = "sb_drain.any",
+ },
+ {
+ .event_code = {0xD4},
+ .umask = 0x1,
+ .event_name = "seg_rename_stalls",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x4,
+ .event_name = "simd_int_128.pack",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x20,
+ .event_name = "simd_int_128.packed_arith",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x10,
+ .event_name = "simd_int_128.packed_logical",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x1,
+ .event_name = "simd_int_128.packed_mpy",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x2,
+ .event_name = "simd_int_128.packed_shift",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x40,
+ .event_name = "simd_int_128.shuffle_move",
+ },
+ {
+ .event_code = {0x12},
+ .umask = 0x8,
+ .event_name = "simd_int_128.unpack",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x4,
+ .event_name = "simd_int_64.pack",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x20,
+ .event_name = "simd_int_64.packed_arith",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x10,
+ .event_name = "simd_int_64.packed_logical",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x1,
+ .event_name = "simd_int_64.packed_mpy",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x2,
+ .event_name = "simd_int_64.packed_shift",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x40,
+ .event_name = "simd_int_64.shuffle_move",
+ },
+ {
+ .event_code = {0xFD},
+ .umask = 0x8,
+ .event_name = "simd_int_64.unpack",
+ },
+ {
+ .event_code = {0xB8},
+ .umask = 0x1,
+ .event_name = "snoop_response.hit",
+ },
+ {
+ .event_code = {0xB8},
+ .umask = 0x2,
+ .event_name = "snoop_response.hite",
+ },
+ {
+ .event_code = {0xB8},
+ .umask = 0x4,
+ .event_name = "snoop_response.hitm",
+ },
+ {
+ .event_code = {0xB4},
+ .umask = 0x4,
+ .event_name = "snoopq_requests.code",
+ },
+ {
+ .event_code = {0xB4},
+ .umask = 0x1,
+ .event_name = "snoopq_requests.data",
+ },
+ {
+ .event_code = {0xB4},
+ .umask = 0x2,
+ .event_name = "snoopq_requests.invalidate",
+ },
+ {
+ .event_code = {0xB3},
+ .umask = 0x4,
+ .event_name = "snoopq_requests_outstanding.code",
+ },
+ {
+ .event_code = {0xB3},
+ .umask = 0x4,
+ .event_name = "snoopq_requests_outstanding.code_not_empty",
+ },
+ {
+ .event_code = {0xB3},
+ .umask = 0x1,
+ .event_name = "snoopq_requests_outstanding.data",
+ },
+ {
+ .event_code = {0xB3},
+ .umask = 0x1,
+ .event_name = "snoopq_requests_outstanding.data_not_empty",
+ },
+ {
+ .event_code = {0xB3},
+ .umask = 0x2,
+ .event_name = "snoopq_requests_outstanding.invalidate",
+ },
+ {
+ .event_code = {0xB3},
+ .umask = 0x2,
+ .event_name = "snoopq_requests_outstanding.invalidate_not_empty",
+ },
+ {
+ .event_code = {0xF6},
+ .umask = 0x1,
+ .event_name = "sq_full_stall_cycles",
+ },
+ {
+ .event_code = {0xF4},
+ .umask = 0x4,
+ .event_name = "sq_misc.lru_hints",
+ },
+ {
+ .event_code = {0xF4},
+ .umask = 0x10,
+ .event_name = "sq_misc.split_lock",
+ },
+ {
+ .event_code = {0xC7},
+ .umask = 0x4,
+ .event_name = "ssex_uops_retired.packed_double",
+ },
+ {
+ .event_code = {0xC7},
+ .umask = 0x1,
+ .event_name = "ssex_uops_retired.packed_single",
+ },
+ {
+ .event_code = {0xC7},
+ .umask = 0x8,
+ .event_name = "ssex_uops_retired.scalar_double",
+ },
+ {
+ .event_code = {0xC7},
+ .umask = 0x2,
+ .event_name = "ssex_uops_retired.scalar_single",
+ },
+ {
+ .event_code = {0xC7},
+ .umask = 0x10,
+ .event_name = "ssex_uops_retired.vector_integer",
+ },
+ {
+ .event_code = {0x6},
+ .umask = 0x4,
+ .event_name = "store_blocks.at_ret",
+ },
+ {
+ .event_code = {0x6},
+ .umask = 0x8,
+ .event_name = "store_blocks.l1d_block",
+ },
+ {
+ .event_code = {0x3C},
+ .umask = 0x0,
+ .event_name = "cpu_clk_unhalted.thread_p",
+ },
+ {
+ .event_code = {0x19},
+ .umask = 0x1,
+ .event_name = "two_uop_insts_decoded",
+ },
+ {
+ .event_code = {0xDB},
+ .umask = 0x1,
+ .event_name = "uop_unfusion",
+ },
+ {
+ .event_code = {0xD1},
+ .umask = 0x4,
+ .event_name = "uops_decoded.esp_folding",
+ },
+ {
+ .event_code = {0xD1},
+ .umask = 0x8,
+ .event_name = "uops_decoded.esp_sync",
+ },
+ {
+ .event_code = {0xD1},
+ .umask = 0x2,
+ .event_name = "uops_decoded.ms_cycles_active",
+ },
+ {
+ .event_code = {0xD1},
+ .umask = 0x1,
+ .event_name = "uops_decoded.stall_cycles",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x3F,
+ .event_name = "uops_executed.core_active_cycles",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x1F,
+ .event_name = "uops_executed.core_active_cycles_no_port5",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x3F,
+ .event_name = "uops_executed.core_stall_count",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x1F,
+ .event_name = "uops_executed.core_stall_count_no_port5",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x3F,
+ .event_name = "uops_executed.core_stall_cycles",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x1F,
+ .event_name = "uops_executed.core_stall_cycles_no_port5",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x1,
+ .event_name = "uops_executed.port0",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x40,
+ .event_name = "uops_executed.port015",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x40,
+ .event_name = "uops_executed.port015_stall_cycles",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x2,
+ .event_name = "uops_executed.port1",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x4,
+ .event_name = "uops_executed.port2_core",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x80,
+ .event_name = "uops_executed.port234_core",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x8,
+ .event_name = "uops_executed.port3_core",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x10,
+ .event_name = "uops_executed.port4_core",
+ },
+ {
+ .event_code = {0xB1},
+ .umask = 0x20,
+ .event_name = "uops_executed.port5",
+ },
+ {
+ .event_code = {0xE},
+ .umask = 0x1,
+ .event_name = "uops_issued.any",
+ },
+ {
+ .event_code = {0xE},
+ .umask = 0x1,
+ .event_name = "uops_issued.core_stall_cycles",
+ },
+ {
+ .event_code = {0xE},
+ .umask = 0x1,
+ .event_name = "uops_issued.cycles_all_threads",
+ },
+ {
+ .event_code = {0xE},
+ .umask = 0x2,
+ .event_name = "uops_issued.fused",
+ },
+ {
+ .event_code = {0xE},
+ .umask = 0x1,
+ .event_name = "uops_issued.stall_cycles",
+ },
+ {
+ .event_code = {0xC2},
+ .umask = 0x1,
+ .event_name = "uops_retired.active_cycles",
+ },
+ {
+ .event_code = {0xC2},
+ .umask = 0x1,
+ .event_name = "uops_retired.any",
+ },
+ {
+ .event_code = {0xC2},
+ .umask = 0x4,
+ .event_name = "uops_retired.macro_fused",
+ },
+ {
+ .event_code = {0xC2},
+ .umask = 0x2,
+ .event_name = "uops_retired.retire_slots",
+ },
+ {
+ .event_code = {0xC2},
+ .umask = 0x1,
+ .event_name = "uops_retired.stall_cycles",
+ },
+ {
+ .event_code = {0xC2},
+ .umask = 0x1,
+ .event_name = "uops_retired.total_cycles",
+ },
+ {
+ .event_code = {0xC0},
+ .umask = 0x1,
+ .event_name = "inst_retired.total_cycles_ps",
+ },
+ {
+ .event_name = 0,
+ },
+};
+
+PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);
+