Blame src/libpfm-3.y/lib/core_events.h

Packit Service a1973e
/*
Packit Service a1973e
 * Copyright (c) 2006 Hewlett-Packard Development Company, L.P.
Packit Service a1973e
 * Contributed by Stephane Eranian <eranian@hpl.hp.com>
Packit Service a1973e
 *
Packit Service a1973e
 * Permission is hereby granted, free of charge, to any person obtaining a copy
Packit Service a1973e
 * of this software and associated documentation files (the "Software"), to deal
Packit Service a1973e
 * in the Software without restriction, including without limitation the rights
Packit Service a1973e
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
Packit Service a1973e
 * of the Software, and to permit persons to whom the Software is furnished to do so,
Packit Service a1973e
 * subject to the following conditions:
Packit Service a1973e
 *
Packit Service a1973e
 * The above copyright notice and this permission notice shall be included in all
Packit Service a1973e
 * copies or substantial portions of the Software.
Packit Service a1973e
 *
Packit Service a1973e
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
Packit Service a1973e
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
Packit Service a1973e
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
Packit Service a1973e
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
Packit Service a1973e
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
Packit Service a1973e
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit Service a1973e
 *
Packit Service a1973e
 * This file is part of libpfm, a performance monitoring support library for
Packit Service a1973e
 * applications on Linux.
Packit Service a1973e
 */
Packit Service a1973e
Packit Service a1973e
#define INTEL_CORE_MESI_UMASKS \
Packit Service a1973e
		{ .pme_uname = "MESI",\
Packit Service a1973e
		  .pme_udesc = "Any cacheline access (default)",\
Packit Service a1973e
		  .pme_ucode = 0xf\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "I_STATE",\
Packit Service a1973e
		  .pme_udesc = "Invalid cacheline",\
Packit Service a1973e
		  .pme_ucode = 0x1\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "S_STATE",\
Packit Service a1973e
		  .pme_udesc = "Shared cacheline",\
Packit Service a1973e
		  .pme_ucode = 0x2\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "E_STATE",\
Packit Service a1973e
		  .pme_udesc = "Exclusive cacheline",\
Packit Service a1973e
		  .pme_ucode = 0x4\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "M_STATE",\
Packit Service a1973e
		  .pme_udesc = "Modified cacheline",\
Packit Service a1973e
		  .pme_ucode = 0x8\
Packit Service a1973e
		}
Packit Service a1973e
Packit Service a1973e
#define INTEL_CORE_SPECIFICITY_UMASKS \
Packit Service a1973e
		{ .pme_uname = "SELF",\
Packit Service a1973e
		  .pme_udesc = "This core",\
Packit Service a1973e
		  .pme_ucode = 0x40\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "BOTH_CORES",\
Packit Service a1973e
		  .pme_udesc = "Both cores",\
Packit Service a1973e
		  .pme_ucode = 0xc0\
Packit Service a1973e
		}
Packit Service a1973e
Packit Service a1973e
#define INTEL_CORE_HW_PREFETCH_UMASKS \
Packit Service a1973e
		{ .pme_uname = "ANY",\
Packit Service a1973e
		  .pme_udesc = "All inclusive",\
Packit Service a1973e
		  .pme_ucode = 0x30\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "PREFETCH",\
Packit Service a1973e
		  .pme_udesc = "Hardware prefetch only",\
Packit Service a1973e
		  .pme_ucode = 0x10\
Packit Service a1973e
		}
Packit Service a1973e
Packit Service a1973e
#define INTEL_CORE_AGENT_UMASKS \
Packit Service a1973e
		{ .pme_uname = "THIS_AGENT",\
Packit Service a1973e
		  .pme_udesc = "This agent",\
Packit Service a1973e
		  .pme_ucode = 0x00\
Packit Service a1973e
		},\
Packit Service a1973e
		{ .pme_uname = "ALL_AGENTS",\
Packit Service a1973e
		  .pme_udesc = "Any agent on the bus",\
Packit Service a1973e
		  .pme_ucode = 0x20\
Packit Service a1973e
		}
Packit Service a1973e
Packit Service a1973e
Packit Service a1973e
static pme_core_entry_t core_pe[]={
Packit Service a1973e
	/*
Packit Service a1973e
	 * BEGIN: architected Core events
Packit Service a1973e
	 */
Packit Service a1973e
	{.pme_name = "UNHALTED_CORE_CYCLES",
Packit Service a1973e
	 .pme_code = 0x003c,
Packit Service a1973e
	 .pme_flags = PFMLIB_CORE_FIXED1,
Packit Service a1973e
	 .pme_desc =  "count core clock cycles whenever the clock signal on the specific core is running (not halted). Alias to event CPU_CLK_UNHALTED:CORE_P"
Packit Service a1973e
	},
Packit Service a1973e
	{.pme_name = "INSTRUCTIONS_RETIRED",
Packit Service a1973e
	 .pme_code = 0x00c0,
Packit Service a1973e
	 .pme_flags = PFMLIB_CORE_FIXED0,
Packit Service a1973e
	 .pme_desc =  "count the number of instructions at retirement. Alias to event INST_RETIRED:ANY_P",
Packit Service a1973e
	},
Packit Service a1973e
	{.pme_name = "UNHALTED_REFERENCE_CYCLES",
Packit Service a1973e
	 .pme_code = 0x013c,
Packit Service a1973e
	 .pme_flags = PFMLIB_CORE_FIXED2_ONLY,
Packit Service a1973e
	 .pme_desc =  "Unhalted reference cycles. Alias to event CPU_CLK_UNHALTED:REF",
Packit Service a1973e
	},
Packit Service a1973e
	{.pme_name = "LAST_LEVEL_CACHE_REFERENCES",
Packit Service a1973e
	 .pme_code = 0x4f2e,
Packit Service a1973e
	 .pme_desc =  "count each request originating from the core to reference a cache line in the last level cache. The count may include speculation, but excludes cache line fills due to hardware prefetch. Alias to L2_RQSTS:SELF_DEMAND_MESI",
Packit Service a1973e
	},
Packit Service a1973e
	{.pme_name = "LAST_LEVEL_CACHE_MISSES",
Packit Service a1973e
	 .pme_code = 0x412e,
Packit Service a1973e
	 .pme_desc =  "count each cache miss condition for references to the last level cache. The event count may include speculation, but excludes cache line fills due to hardware prefetch. Alias to event L2_RQSTS:SELF_DEMAND_I_STATE",
Packit Service a1973e
	},
Packit Service a1973e
	{.pme_name = "BRANCH_INSTRUCTIONS_RETIRED",
Packit Service a1973e
	 .pme_code = 0x00c4,
Packit Service a1973e
	 .pme_desc =  "count branch instructions at retirement. Specifically, this event counts the retirement of the last micro-op of a branch instruction. Alias to event BR_INST_RETIRED:ANY",
Packit Service a1973e
	},
Packit Service a1973e
	{.pme_name = "MISPREDICTED_BRANCH_RETIRED",
Packit Service a1973e
	 .pme_code = 0x00c5,
Packit Service a1973e
	 .pme_desc =  "count mispredicted branch instructions at retirement. Specifically, this event counts at retirement of the last micro-op of a branch instruction in the architectural path of the execution and experienced misprediction in the branch prediction hardware. Alias to BR_INST_RETIRED:MISPRED",
Packit Service a1973e
	},
Packit Service a1973e
	/*
Packit Service a1973e
	 * END: architected events
Packit Service a1973e
	 */
Packit Service a1973e
	/*
Packit Service a1973e
	 * BEGIN: Core 2 Duo events
Packit Service a1973e
	 */
Packit Service a1973e
	{ .pme_name = "RS_UOPS_DISPATCHED_CYCLES",
Packit Service a1973e
	  .pme_code = 0xa1,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC0,
Packit Service a1973e
	  .pme_desc =  "Cycles micro-ops dispatched for execution",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "PORT_0",
Packit Service a1973e
		  .pme_udesc = "on port 0",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PORT_1",
Packit Service a1973e
		  .pme_udesc = "on port 1",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PORT_2",
Packit Service a1973e
		  .pme_udesc = "on port 2",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PORT_3",
Packit Service a1973e
		  .pme_udesc = "on port 3",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PORT_4",
Packit Service a1973e
		  .pme_udesc = "on port 4",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PORT_5",
Packit Service a1973e
		  .pme_udesc = "on port 5",
Packit Service a1973e
		  .pme_ucode = 0x20
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "on any port",
Packit Service a1973e
		  .pme_ucode = 0x3f
Packit Service a1973e
		},
Packit Service a1973e
	   },	
Packit Service a1973e
	   .pme_numasks = 7
Packit Service a1973e
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "RS_UOPS_DISPATCHED",
Packit Service a1973e
	  .pme_code = 0xa0,
Packit Service a1973e
	  .pme_desc =  "Number of micro-ops dispatched for execution",
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "RS_UOPS_DISPATCHED_NONE",
Packit Service a1973e
	  .pme_code = 0xa0 | (1 << 23 | 1 << 24),
Packit Service a1973e
	  .pme_desc =  "Number of of cycles in which no micro-ops is dispatched for execution",
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "LOAD_BLOCK",
Packit Service a1973e
	  .pme_code = 0x3,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Loads blocked",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "STA",
Packit Service a1973e
		  .pme_udesc = "Loads blocked by a preceding store with unknown address",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "STD",
Packit Service a1973e
		  .pme_udesc = "Loads blocked by a preceding store with unknown data",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "OVERLAP_STORE",
Packit Service a1973e
		  .pme_udesc = "Loads that partially overlap an earlier store, or 4K aliased with a previous store",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "UNTIL_RETIRE",
Packit Service a1973e
		  .pme_udesc = "Loads blocked until retirement",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L1D",
Packit Service a1973e
		  .pme_udesc = "Loads blocked by the L1 data cache",
Packit Service a1973e
		  .pme_ucode = 0x20
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SB_DRAIN_CYCLES",
Packit Service a1973e
	  .pme_code = 0x104,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles while stores are blocked due to store buffer drain"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "STORE_BLOCK",
Packit Service a1973e
	  .pme_code = 0x4,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles while store is waiting",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ORDER",
Packit Service a1973e
		  .pme_udesc = "Cycles while store is waiting for a preceding store to be globally observed",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SNOOP",
Packit Service a1973e
		  .pme_udesc = "A store is blocked due to a conflict with an external or internal snoop",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SEGMENT_REG_LOADS",
Packit Service a1973e
	  .pme_code = 0x6,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Number of segment register loads"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SSE_PRE_EXEC",
Packit Service a1973e
	  .pme_code = 0x7,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Streaming SIMD Extensions (SSE) Prefetch instructions executed",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "NTA",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) Prefetch NTA instructions executed",
Packit Service a1973e
		  .pme_ucode = 0x0
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L1",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) PrefetchT0 instructions executed",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L2",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) PrefetchT1 and PrefetchT2 instructions executed",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "STORES",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) Weakly-ordered store instructions executed",
Packit Service a1973e
		  .pme_ucode = 0x3
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "DTLB_MISSES",
Packit Service a1973e
	  .pme_code = 0x8,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Memory accesses that missed the DTLB",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Any memory access that missed the DTLB",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MISS_LD",
Packit Service a1973e
		  .pme_udesc = "DTLB misses due to load operations",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L0_MISS_LD",
Packit Service a1973e
		  .pme_udesc = "L0 DTLB misses due to load operations",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MISS_ST",
Packit Service a1973e
		  .pme_udesc = "DTLB misses due to store operations",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "MEMORY_DISAMBIGUATION",
Packit Service a1973e
	  .pme_code = 0x9,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Memory disambiguation",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "RESET",
Packit Service a1973e
		  .pme_udesc = "Memory disambiguation reset cycles",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SUCCESS",
Packit Service a1973e
		  .pme_udesc = "Number of loads that were successfully disambiguated",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "PAGE_WALKS",
Packit Service a1973e
	  .pme_code = 0xc,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Number of page-walks executed",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "COUNT",
Packit Service a1973e
		  .pme_udesc = "Number of page-walks executed",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "CYCLES",
Packit Service a1973e
		  .pme_udesc = "Duration of page-walks in core cycles",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "FP_COMP_OPS_EXE",
Packit Service a1973e
	  .pme_code = 0x10,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC0,
Packit Service a1973e
	  .pme_desc =  "Floating point computational micro-ops executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "FP_ASSIST",
Packit Service a1973e
	  .pme_code = 0x11,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC1,
Packit Service a1973e
	  .pme_desc =  "Floating point assists"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "MUL",
Packit Service a1973e
	  .pme_code = 0x12,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC1,
Packit Service a1973e
	  .pme_desc =  "Multiply operations executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "DIV",
Packit Service a1973e
	  .pme_code = 0x13,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC1,
Packit Service a1973e
	  .pme_desc =  "Divide operations executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "CYCLES_DIV_BUSY",
Packit Service a1973e
	  .pme_code = 0x14,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC0,
Packit Service a1973e
	  .pme_desc =  "Cycles the divider is busy"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "IDLE_DURING_DIV",
Packit Service a1973e
	  .pme_code = 0x18,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC0,
Packit Service a1973e
	  .pme_desc =  "Cycles the divider is busy and all other execution units are idle"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "DELAYED_BYPASS",
Packit Service a1973e
	  .pme_code = 0x19,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC1,
Packit Service a1973e
	  .pme_desc =  "Delayed bypass",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "FP",
Packit Service a1973e
		  .pme_udesc = "Delayed bypass to FP operation",
Packit Service a1973e
		  .pme_ucode = 0x0
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SIMD",
Packit Service a1973e
		  .pme_udesc = "Delayed bypass to SIMD operation",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "LOAD",
Packit Service a1973e
		  .pme_udesc = "Delayed bypass to load operation",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 3
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_ADS",
Packit Service a1973e
	  .pme_code = 0x21,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Cycles L2 address bus is in use",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_DBUS_BUSY_RD",
Packit Service a1973e
	  .pme_code = 0x23,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Cycles the L2 transfers data to the core",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_LINES_IN",
Packit Service a1973e
	  .pme_code = 0x24,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "L2 cache misses",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_HW_PREFETCH_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_M_LINES_IN",
Packit Service a1973e
	  .pme_code = 0x25,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "L2 cache line modifications",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_LINES_OUT",
Packit Service a1973e
	  .pme_code = 0x26,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "L2 cache lines evicted",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_HW_PREFETCH_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_M_LINES_OUT",
Packit Service a1973e
	  .pme_code = 0x27,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Modified lines evicted from the L2 cache",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_HW_PREFETCH_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_IFETCH",
Packit Service a1973e
	  .pme_code = 0x28,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC|PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L2 cacheable instruction fetch requests",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS,
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 7
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_LD",
Packit Service a1973e
	  .pme_code = 0x29,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC|PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L2 cache reads",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS,
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_HW_PREFETCH_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 9
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_ST",
Packit Service a1973e
	  .pme_code = 0x2a,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC|PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L2 store requests",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS,
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 7
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_LOCK",
Packit Service a1973e
	  .pme_code = 0x2b,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC|PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L2 locked accesses",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS,
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 7
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_RQSTS",
Packit Service a1973e
	  .pme_code = 0x2e,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC|PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L2 cache requests",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS,
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_HW_PREFETCH_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 9
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_REJECT_BUSQ",
Packit Service a1973e
	  .pme_code = 0x30,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC|PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "Rejected L2 cache requests",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS,
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_HW_PREFETCH_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 9
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L2_NO_REQ",
Packit Service a1973e
	  .pme_code = 0x32,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Cycles no L2 cache requests are pending",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "EIST_TRANS",
Packit Service a1973e
	  .pme_code = 0x3a,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Number of Enhanced Intel SpeedStep(R) Technology (EIST) transitions"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "THERMAL_TRIP",
Packit Service a1973e
	  .pme_code = 0xc03b,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Number of thermal trips"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "CPU_CLK_UNHALTED",
Packit Service a1973e
	  .pme_code = 0x3c,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_UMASK_NCOMBO,
Packit Service a1973e
	  .pme_desc =  "Core cycles when core is not halted",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "CORE_P",
Packit Service a1973e
		  .pme_udesc = "Core cycles when core is not halted",
Packit Service a1973e
		  .pme_ucode = 0x0,
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "REF",
Packit Service a1973e
		  .pme_udesc = "Reference cycles. This event is not affected by core changes such as P-states or TM2 transitions but counts at the same frequency as the time stamp counter. This event can approximate elapsed time. This event has a constant ratio with the CPU_CLK_UNHALTED:BUS event",
Packit Service a1973e
		  .pme_ucode = 0x1,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_FIXED2_ONLY /* Can only be measured on FIXED_CTR2 */
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "BUS",
Packit Service a1973e
		  .pme_udesc = "Bus cycles when core is not halted. This event can give a measurement of the elapsed time. This events has a constant ratio with CPU_CLK_UNHALTED:REF event, which is the maximum bus to processor frequency ratio",
Packit Service a1973e
		  .pme_ucode = 0x1,
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "NO_OTHER",
Packit Service a1973e
		  .pme_udesc = "Bus cycles when core is active and the other is halted",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_CACHE_LD",
Packit Service a1973e
	  .pme_code = 0x40,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L1 cacheable data reads",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_CACHE_ST",
Packit Service a1973e
	  .pme_code = 0x41,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L1 cacheable data writes",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_CACHE_LOCK",
Packit Service a1973e
	  .pme_code = 0x42,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_MESI,
Packit Service a1973e
	  .pme_desc =  "L1 data cacheable locked reads",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_MESI_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_ALL_REF",
Packit Service a1973e
	  .pme_code = 0x143,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "All references to the L1 data cache"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_ALL_CACHE_REF",
Packit Service a1973e
	  .pme_code = 0x243,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "L1 Data cacheable reads and writes"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_REPL",
Packit Service a1973e
	  .pme_code = 0xf45,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cache lines allocated in the L1 data cache"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_M_REPL",
Packit Service a1973e
	  .pme_code = 0x46,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Modified cache lines allocated in the L1 data cache"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_M_EVICT",
Packit Service a1973e
	  .pme_code = 0x47,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Modified cache lines evicted from the L1 data cache"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_PEND_MISS",
Packit Service a1973e
	  .pme_code = 0x48,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Total number of outstanding L1 data cache misses at any cycle"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_SPLIT",
Packit Service a1973e
	  .pme_code = 0x49,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cache line split from L1 data cache",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "LOADS",
Packit Service a1973e
		  .pme_udesc = "Cache line split loads from the L1 data cache",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "STORES",
Packit Service a1973e
		  .pme_udesc = "Cache line split stores to the L1 data cache",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SSE_PRE_MISS",
Packit Service a1973e
	  .pme_code = 0x4b,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Streaming SIMD Extensions (SSE) instructions missing all cache levels",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "NTA",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) Prefetch NTA instructions missing all cache levels",
Packit Service a1973e
		  .pme_ucode = 0x0
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L1",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) PrefetchT0 instructions missing all cache levels",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L2",
Packit Service a1973e
		  .pme_udesc = "Streaming SIMD Extensions (SSE) PrefetchT1 and PrefetchT2 instructions missing all cache levels",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 3
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "LOAD_HIT_PRE",
Packit Service a1973e
	  .pme_code = 0x4c,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Load operations conflicting with a software prefetch to the same address"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1D_PREFETCH",
Packit Service a1973e
	  .pme_code = 0x4e,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "L1 data cache prefetch",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "REQUESTS",
Packit Service a1973e
		  .pme_udesc = "L1 data cache prefetch requests",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 1
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_REQUEST_OUTSTANDING",
Packit Service a1973e
	  .pme_code = 0x60,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Number of pending full cache line read transactions on the bus occurring in each cycle",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_BNR_DRV",
Packit Service a1973e
	  .pme_code = 0x61,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Number of Bus Not Ready signals asserted",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_DRDY_CLOCKS",
Packit Service a1973e
	  .pme_code = 0x62,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Bus cycles when data is sent on the bus",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_LOCK_CLOCKS",
Packit Service a1973e
	  .pme_code = 0x63,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Bus cycles when a LOCK signal is asserted",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_DATA_RCV",
Packit Service a1973e
	  .pme_code = 0x64,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Bus cycles while processor receives data",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_BRD",
Packit Service a1973e
	  .pme_code = 0x65,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Burst read bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_RFO",
Packit Service a1973e
	  .pme_code = 0x66,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "RFO bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_WB",
Packit Service a1973e
	  .pme_code = 0x67,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Explicit writeback bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_IFETCH",
Packit Service a1973e
	  .pme_code = 0x68,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Instruction-fetch bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_INVAL",
Packit Service a1973e
	  .pme_code = 0x69,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Invalidate bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_PWR",
Packit Service a1973e
	  .pme_code = 0x6a,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Partial write bus transaction",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_P",
Packit Service a1973e
	  .pme_code = 0x6b,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Partial bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_IO",
Packit Service a1973e
	  .pme_code = 0x6c,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "IO bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_DEF",
Packit Service a1973e
	  .pme_code = 0x6d,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Deferred bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_BURST",
Packit Service a1973e
	  .pme_code = 0x6e,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Burst (full cache-line) bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_MEM",
Packit Service a1973e
	  .pme_code = 0x6f,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Memory bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_TRANS_ANY",
Packit Service a1973e
	  .pme_code = 0x70,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "All bus transactions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "EXT_SNOOP",
Packit Service a1973e
	  .pme_code = 0x77,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "External snoops responses",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS,
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Any external snoop response",
Packit Service a1973e
		  .pme_ucode = 0xb
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "CLEAN",
Packit Service a1973e
		  .pme_udesc = "External snoop CLEAN response",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "HIT",
Packit Service a1973e
		  .pme_udesc = "External snoop HIT response",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "HITM",
Packit Service a1973e
		  .pme_udesc = "External snoop HITM response",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 6
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "CMP_SNOOP",
Packit Service a1973e
	  .pme_code = 0x78,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "L1 data cache is snooped by other core",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "L1 data cache is snooped by other core",
Packit Service a1973e
		  .pme_ucode = 0x03
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SHARE",
Packit Service a1973e
		  .pme_udesc = "L1 data cache is snooped for sharing by other core",
Packit Service a1973e
		  .pme_ucode = 0x01
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "INVALIDATE",
Packit Service a1973e
		  .pme_udesc = "L1 data cache is snooped for Invalidation by other core",
Packit Service a1973e
		  .pme_ucode = 0x02
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_HIT_DRV",
Packit Service a1973e
	  .pme_code = 0x7a,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "HIT signal asserted",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_HITM_DRV",
Packit Service a1973e
	  .pme_code = 0x7b,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "HITM signal asserted",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUSQ_EMPTY",
Packit Service a1973e
	  .pme_code = 0x7d,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Bus queue is empty",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SNOOP_STALL_DRV",
Packit Service a1973e
	  .pme_code = 0x7e,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "Bus stalled for snoops",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS,
Packit Service a1973e
		INTEL_CORE_AGENT_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BUS_IO_WAIT",
Packit Service a1973e
	  .pme_code = 0x7f,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_CSPEC,
Packit Service a1973e
	  .pme_desc =  "IO requests waiting in the bus queue",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		INTEL_CORE_SPECIFICITY_UMASKS
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1I_READS",
Packit Service a1973e
	  .pme_code = 0x80,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Instruction fetches"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "L1I_MISSES",
Packit Service a1973e
	  .pme_code = 0x81,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Instruction Fetch Unit misses"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "ITLB",
Packit Service a1973e
	  .pme_code = 0x82,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "ITLB small page misses",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "SMALL_MISS",
Packit Service a1973e
		  .pme_udesc = "ITLB small page misses",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "LARGE_MISS",
Packit Service a1973e
		  .pme_udesc = "ITLB large page misses",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FLUSH",
Packit Service a1973e
		  .pme_udesc = "ITLB flushes",
Packit Service a1973e
		  .pme_ucode = 0x40
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MISSES",
Packit Service a1973e
		  .pme_udesc = "ITLB misses",
Packit Service a1973e
		  .pme_ucode = 0x12
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "INST_QUEUE",
Packit Service a1973e
	  .pme_code = 0x83,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles during which the instruction queue is full",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "FULL",
Packit Service a1973e
		  .pme_udesc = "Cycles during which the instruction queue is full",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 1
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "CYCLES_L1I_MEM_STALLED",
Packit Service a1973e
	  .pme_code = 0x86,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles during which instruction fetches are stalled"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "ILD_STALL",
Packit Service a1973e
	  .pme_code = 0x87,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Instruction Length Decoder stall cycles due to a length changing prefix"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_INST_EXEC",
Packit Service a1973e
	  .pme_code = 0x88,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Branch instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x89,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Mispredicted branch instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_BAC_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x8a,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Branch instructions mispredicted at decoding"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_CND_EXEC",
Packit Service a1973e
	  .pme_code = 0x8b,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Conditional branch instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_CND_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x8c,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Mispredicted conditional branch instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_IND_EXEC",
Packit Service a1973e
	  .pme_code = 0x8d,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Indirect branch instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_IND_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x8e,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Mispredicted indirect branch instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_RET_EXEC",
Packit Service a1973e
	  .pme_code = 0x8f,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "RET instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_RET_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x90,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Mispredicted RET instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_RET_BAC_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x91,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "RET instructions executed mispredicted at decoding"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_CALL_EXEC",
Packit Service a1973e
	  .pme_code = 0x92,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "CALL instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_CALL_MISSP_EXEC",
Packit Service a1973e
	  .pme_code = 0x93,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Mispredicted CALL instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_IND_CALL_EXEC",
Packit Service a1973e
	  .pme_code = 0x94,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Indirect CALL instructions executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_TKN_BUBBLE_1",
Packit Service a1973e
	  .pme_code = 0x97,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Branch predicted taken with bubble I"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_TKN_BUBBLE_2",
Packit Service a1973e
	  .pme_code = 0x98,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Branch predicted taken with bubble II"
Packit Service a1973e
	},
Packit Service a1973e
#if 0
Packit Service a1973e
	/*
Packit Service a1973e
	 * Looks like event 0xa1 supersedes this one
Packit Service a1973e
	 */
Packit Service a1973e
	{ .pme_name = "RS_UOPS_DISPATCHED",
Packit Service a1973e
	  .pme_code = 0xa0,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Micro-ops dispatched for execution"
Packit Service a1973e
	},
Packit Service a1973e
#endif
Packit Service a1973e
	{ .pme_name = "MACRO_INSTS",
Packit Service a1973e
	  .pme_code = 0xaa,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Instructions decoded",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "DECODED",
Packit Service a1973e
		  .pme_udesc = "Instructions decoded",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "CISC_DECODED",
Packit Service a1973e
		  .pme_udesc = "CISC instructions decoded",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "ESP",
Packit Service a1973e
	  .pme_code = 0xab,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "ESP register content synchronization",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "SYNCH",
Packit Service a1973e
		  .pme_udesc = "ESP register content synchronization",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ADDITIONS",
Packit Service a1973e
		  .pme_udesc = "ESP register automatic additions",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_UOPS_EXEC",
Packit Service a1973e
	  .pme_code = 0xb0,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "SIMD micro-ops executed (excluding stores)"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_SAT_UOP_EXEC",
Packit Service a1973e
	  .pme_code = 0xb1,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "SIMD saturated arithmetic micro-ops executed"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_UOP_TYPE_EXEC",
Packit Service a1973e
	  .pme_code = 0xb3,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "SIMD packed multiply micro-ops executed",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "MUL",
Packit Service a1973e
		  .pme_udesc = "SIMD packed multiply micro-ops executed",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SHIFT",
Packit Service a1973e
		  .pme_udesc = "SIMD packed shift micro-ops executed",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PACK",
Packit Service a1973e
		  .pme_udesc = "SIMD pack micro-ops executed",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "UNPACK",
Packit Service a1973e
		  .pme_udesc = "SIMD unpack micro-ops executed",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "LOGICAL",
Packit Service a1973e
		  .pme_udesc = "SIMD packed logical micro-ops executed",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ARITHMETIC",
Packit Service a1973e
		  .pme_udesc = "SIMD packed arithmetic micro-ops executed",
Packit Service a1973e
		  .pme_ucode = 0x20
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 6
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "INST_RETIRED",
Packit Service a1973e
	  .pme_code = 0xc0,
Packit Service a1973e
	  .pme_desc =  "Instructions retired",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ANY_P",
Packit Service a1973e
		  .pme_udesc = "Instructions retired (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x0,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "LOADS",
Packit Service a1973e
		  .pme_udesc = "Instructions retired, which contain a load",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "STORES",
Packit Service a1973e
		  .pme_udesc = "Instructions retired, which contain a store",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "OTHER",
Packit Service a1973e
		  .pme_udesc = "Instructions retired, with no load or store operation",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "X87_OPS_RETIRED",
Packit Service a1973e
	  .pme_code = 0xc1,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "FXCH instructions retired",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "FXCH",
Packit Service a1973e
		  .pme_udesc = "FXCH instructions retired",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Retired floating-point computational operations (precise event)",
Packit Service a1973e
		  .pme_ucode = 0xfe,
Packit Service a1973e
		  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "UOPS_RETIRED",
Packit Service a1973e
	  .pme_code = 0xc2,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Fused load+op or load+indirect branch retired",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "LD_IND_BR",
Packit Service a1973e
		  .pme_udesc = "Fused load+op or load+indirect branch retired",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "STD_STA",
Packit Service a1973e
		  .pme_udesc = "Fused store address + data retired",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MACRO_FUSION",
Packit Service a1973e
		  .pme_udesc = "Retired instruction pairs fused into one micro-op",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "NON_FUSED",
Packit Service a1973e
		  .pme_udesc = "Non-fused micro-ops retired",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FUSED",
Packit Service a1973e
		  .pme_udesc = "Fused micro-ops retired",
Packit Service a1973e
		  .pme_ucode = 0x7
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Micro-ops retired",
Packit Service a1973e
		  .pme_ucode = 0xf
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 6
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "MACHINE_NUKES",
Packit Service a1973e
	  .pme_code = 0xc3,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Self-Modifying Code detected",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "SMC",
Packit Service a1973e
		  .pme_udesc = "Self-Modifying Code detected",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MEM_ORDER",
Packit Service a1973e
		  .pme_udesc = "Execution pipeline restart due to memory ordering conflict or memory disambiguation misprediction",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_INST_RETIRED",
Packit Service a1973e
	  .pme_code = 0xc4,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Retired branch instructions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Retired branch instructions",
Packit Service a1973e
		  .pme_ucode = 0x0
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PRED_NOT_TAKEN",
Packit Service a1973e
		  .pme_udesc = "Retired branch instructions that were predicted not-taken",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MISPRED_NOT_TAKEN",
Packit Service a1973e
		  .pme_udesc = "Retired branch instructions that were mispredicted not-taken",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PRED_TAKEN",
Packit Service a1973e
		  .pme_udesc = "Retired branch instructions that were predicted taken",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "MISPRED_TAKEN",
Packit Service a1973e
		  .pme_udesc = "Retired branch instructions that were mispredicted taken",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "TAKEN",
Packit Service a1973e
		  .pme_udesc = "Retired taken branch instructions",
Packit Service a1973e
		  .pme_ucode = 0xc
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 6
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_INST_RETIRED_MISPRED",
Packit Service a1973e
	  .pme_code = 0x00c5,
Packit Service a1973e
	  .pme_desc =  "Retired mispredicted branch instructions (precise_event)",
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "CYCLES_INT_MASKED",
Packit Service a1973e
	  .pme_code = 0x1c6,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles during which interrupts are disabled"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "CYCLES_INT_PENDING_AND_MASKED",
Packit Service a1973e
	  .pme_code = 0x2c6,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles during which interrupts are pending and disabled"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_INST_RETIRED",
Packit Service a1973e
	  .pme_code = 0xc7,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Retired Streaming SIMD Extensions (SSE) packed-single instructions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "PACKED_SINGLE",
Packit Service a1973e
		  .pme_udesc = "Retired Streaming SIMD Extensions (SSE) packed-single instructions",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SCALAR_SINGLE",
Packit Service a1973e
		  .pme_udesc = "Retired Streaming SIMD Extensions (SSE) scalar-single instructions",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PACKED_DOUBLE",
Packit Service a1973e
		  .pme_udesc = "Retired Streaming SIMD Extensions 2 (SSE2) packed-double instructions",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SCALAR_DOUBLE",
Packit Service a1973e
		  .pme_udesc = "Retired Streaming SIMD Extensions 2 (SSE2) scalar-double instructions",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "VECTOR",
Packit Service a1973e
		  .pme_udesc = "Retired Streaming SIMD Extensions 2 (SSE2) vector integer instructions",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Retired Streaming SIMD instructions (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x1f,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 6
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "HW_INT_RCV",
Packit Service a1973e
	  .pme_code = 0xc8,
Packit Service a1973e
	  .pme_desc =  "Hardware interrupts received"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "ITLB_MISS_RETIRED",
Packit Service a1973e
	  .pme_code = 0xc9,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Retired instructions that missed the ITLB"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_COMP_INST_RETIRED",
Packit Service a1973e
	  .pme_code = 0xca,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Retired computational Streaming SIMD Extensions (SSE) packed-single instructions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "PACKED_SINGLE",
Packit Service a1973e
		  .pme_udesc = "Retired computational Streaming SIMD Extensions (SSE) packed-single instructions",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SCALAR_SINGLE",
Packit Service a1973e
		  .pme_udesc = "Retired computational Streaming SIMD Extensions (SSE) scalar-single instructions",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PACKED_DOUBLE",
Packit Service a1973e
		  .pme_udesc = "Retired computational Streaming SIMD Extensions 2 (SSE2) packed-double instructions",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "SCALAR_DOUBLE",
Packit Service a1973e
		  .pme_udesc = "Retired computational Streaming SIMD Extensions 2 (SSE2) scalar-double instructions",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 4
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "MEM_LOAD_RETIRED",
Packit Service a1973e
	  .pme_code = 0xcb,
Packit Service a1973e
	  .pme_desc =  "Retired loads that miss the L1 data cache",
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PMC0, 
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "L1D_MISS",
Packit Service a1973e
		  .pme_udesc = "Retired loads that miss the L1 data cache (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x1,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L1D_LINE_MISS",
Packit Service a1973e
		  .pme_udesc = "L1 data cache line missed by retired loads (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x2,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L2_MISS",
Packit Service a1973e
		  .pme_udesc = "Retired loads that miss the L2 cache (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x4,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "L2_LINE_MISS",
Packit Service a1973e
		  .pme_udesc = "L2 cache line missed by retired loads (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x8,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "DTLB_MISS",
Packit Service a1973e
		  .pme_udesc = "Retired loads that miss the DTLB (precise event)",
Packit Service a1973e
		  .pme_ucode = 0x10,
Packit Service a1973e
	  	  .pme_flags = PFMLIB_CORE_PEBS
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "FP_MMX_TRANS",
Packit Service a1973e
	  .pme_code = 0xcc,
Packit Service a1973e
	  .pme_flags = PFMLIB_CORE_PEBS,
Packit Service a1973e
	  .pme_desc =  "Transitions from MMX (TM) Instructions to Floating Point Instructions",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "TO_FP",
Packit Service a1973e
		  .pme_udesc = "Transitions from MMX (TM) Instructions to Floating Point Instructions",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "TO_MMX",
Packit Service a1973e
		  .pme_udesc = "Transitions from Floating Point to MMX (TM) Instructions",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 2
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_ASSIST",
Packit Service a1973e
	  .pme_code = 0xcd,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "SIMD assists invoked"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_INSTR_RETIRED",
Packit Service a1973e
	  .pme_code = 0xce,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "SIMD Instructions retired"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SIMD_SAT_INSTR_RETIRED",
Packit Service a1973e
	  .pme_code = 0xcf,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Saturated arithmetic instructions retired"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "RAT_STALLS",
Packit Service a1973e
	  .pme_code = 0xd2,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "ROB read port stalls cycles",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ROB_READ_PORT",
Packit Service a1973e
		  .pme_udesc = "ROB read port stalls cycles",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "PARTIAL_CYCLES",
Packit Service a1973e
		  .pme_udesc = "Partial register stall cycles",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FLAGS",
Packit Service a1973e
		  .pme_udesc = "Flag stall cycles",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FPSW",
Packit Service a1973e
		  .pme_udesc = "FPU status word stall",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "All RAT stall cycles",
Packit Service a1973e
		  .pme_ucode = 0xf
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SEG_RENAME_STALLS",
Packit Service a1973e
	  .pme_code = 0xd4,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Segment rename stalls - ES ",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ES",
Packit Service a1973e
		  .pme_udesc = "Segment rename stalls - ES ",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "DS",
Packit Service a1973e
		  .pme_udesc = "Segment rename stalls - DS",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FS",
Packit Service a1973e
		  .pme_udesc = "Segment rename stalls - FS",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "GS",
Packit Service a1973e
		  .pme_udesc = "Segment rename stalls - GS",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Any (ES/DS/FS/GS) segment rename stall",
Packit Service a1973e
		  .pme_ucode = 0xf
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "SEG_REG_RENAMES",
Packit Service a1973e
	  .pme_code = 0xd5,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Segment renames - ES",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ES",
Packit Service a1973e
		  .pme_udesc = "Segment renames - ES",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "DS",
Packit Service a1973e
		  .pme_udesc = "Segment renames - DS",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FS",
Packit Service a1973e
		  .pme_udesc = "Segment renames - FS",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "GS",
Packit Service a1973e
		  .pme_udesc = "Segment renames - GS",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Any (ES/DS/FS/GS) segment rename",
Packit Service a1973e
		  .pme_ucode = 0xf
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 5
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "RESOURCE_STALLS",
Packit Service a1973e
	  .pme_code = 0xdc,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Cycles during which the ROB is full",
Packit Service a1973e
	  .pme_umasks = {
Packit Service a1973e
		{ .pme_uname = "ROB_FULL",
Packit Service a1973e
		  .pme_udesc = "Cycles during which the ROB is full",
Packit Service a1973e
		  .pme_ucode = 0x1
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "RS_FULL",
Packit Service a1973e
		  .pme_udesc = "Cycles during which the RS is full",
Packit Service a1973e
		  .pme_ucode = 0x2
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "LD_ST",
Packit Service a1973e
		  .pme_udesc = "Cycles during which the pipeline has exceeded load or store limit or waiting to commit all stores",
Packit Service a1973e
		  .pme_ucode = 0x4
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "FPCW",
Packit Service a1973e
		  .pme_udesc = "Cycles stalled due to FPU control word write",
Packit Service a1973e
		  .pme_ucode = 0x8
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "BR_MISS_CLEAR",
Packit Service a1973e
		  .pme_udesc = "Cycles stalled due to branch misprediction",
Packit Service a1973e
		  .pme_ucode = 0x10
Packit Service a1973e
		},
Packit Service a1973e
		{ .pme_uname = "ANY",
Packit Service a1973e
		  .pme_udesc = "Resource related stalls",
Packit Service a1973e
		  .pme_ucode = 0x1f
Packit Service a1973e
		}
Packit Service a1973e
	   },
Packit Service a1973e
	   .pme_numasks = 6
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BR_INST_DECODED",
Packit Service a1973e
	  .pme_code = 0xe0,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Branch instructions decoded"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BOGUS_BR",
Packit Service a1973e
	  .pme_code = 0xe4,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Bogus branches"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "BACLEARS",
Packit Service a1973e
	  .pme_code = 0xe6,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "BACLEARS asserted"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "PREF_RQSTS_UP",
Packit Service a1973e
	  .pme_code = 0xf0,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Upward prefetches issued from the DPL"
Packit Service a1973e
	},
Packit Service a1973e
	{ .pme_name = "PREF_RQSTS_DN",
Packit Service a1973e
	  .pme_code = 0xf8,
Packit Service a1973e
	  .pme_flags = 0,
Packit Service a1973e
	  .pme_desc =  "Downward prefetches issued from the DPL"
Packit Service a1973e
	}
Packit Service a1973e
};
Packit Service a1973e
#define PME_CORE_UNHALTED_CORE_CYCLES 0
Packit Service a1973e
#define PME_CORE_INSTRUCTIONS_RETIRED 1
Packit Service a1973e
#define PME_CORE_EVENT_COUNT	  (sizeof(core_pe)/sizeof(pme_core_entry_t))