1 /*- 2 * Copyright (c) 2005 Joseph Koshy 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD$ 27 */ 28 29 #ifndef _DEV_HWPMC_PMC_EVENTS_H_ 30 #define _DEV_HWPMC_PMC_EVENTS_H_ 31 32 /* 33 * PMC event codes. 34 * 35 * __PMC_EV(CLASS, SYMBOLIC-NAME) 36 * 37 */ 38 39 /* 40 * AMD K7 Events, from "The AMD Athlon(tm) Processor x86 Code 41 * Optimization Guide" [Doc#22007K, Feb 2002] 42 */ 43 44 #define __PMC_EV_K7() \ 45 __PMC_EV(K7, DC_ACCESSES) \ 46 __PMC_EV(K7, DC_MISSES) \ 47 __PMC_EV(K7, DC_REFILLS_FROM_L2) \ 48 __PMC_EV(K7, DC_REFILLS_FROM_SYSTEM) \ 49 __PMC_EV(K7, DC_WRITEBACKS) \ 50 __PMC_EV(K7, L1_DTLB_MISS_AND_L2_DTLB_HITS) \ 51 __PMC_EV(K7, L1_AND_L2_DTLB_MISSES) \ 52 __PMC_EV(K7, MISALIGNED_REFERENCES) \ 53 __PMC_EV(K7, IC_FETCHES) \ 54 __PMC_EV(K7, IC_MISSES) \ 55 __PMC_EV(K7, L1_ITLB_MISSES) \ 56 __PMC_EV(K7, L1_L2_ITLB_MISSES) \ 57 __PMC_EV(K7, RETIRED_INSTRUCTIONS) \ 58 __PMC_EV(K7, RETIRED_OPS) \ 59 __PMC_EV(K7, RETIRED_BRANCHES) \ 60 __PMC_EV(K7, RETIRED_BRANCHES_MISPREDICTED) \ 61 __PMC_EV(K7, RETIRED_TAKEN_BRANCHES) \ 62 __PMC_EV(K7, RETIRED_TAKEN_BRANCHES_MISPREDICTED) \ 63 __PMC_EV(K7, RETIRED_FAR_CONTROL_TRANSFERS) \ 64 __PMC_EV(K7, RETIRED_RESYNC_BRANCHES) \ 65 __PMC_EV(K7, INTERRUPTS_MASKED_CYCLES) \ 66 __PMC_EV(K7, INTERRUPTS_MASKED_WHILE_PENDING_CYCLES) \ 67 __PMC_EV(K7, HARDWARE_INTERRUPTS) 68 69 #define PMC_EV_K7_FIRST PMC_EV_K7_DC_ACCESSES 70 #define PMC_EV_K7_LAST PMC_EV_K7_HARDWARE_INTERRUPTS 71 72 73 /* 74 * Intel P4 Events, from "IA-32 Intel(r) Architecture Software 75 * Developer's Manual, Volume 3: System Programming Guide" [245472-012] 76 */ 77 78 #define __PMC_EV_P4() \ 79 __PMC_EV(P4, TC_DELIVER_MODE) \ 80 __PMC_EV(P4, BPU_FETCH_REQUEST) \ 81 __PMC_EV(P4, ITLB_REFERENCE) \ 82 __PMC_EV(P4, MEMORY_CANCEL) \ 83 __PMC_EV(P4, MEMORY_COMPLETE) \ 84 __PMC_EV(P4, LOAD_PORT_REPLAY) \ 85 __PMC_EV(P4, STORE_PORT_REPLAY) \ 86 __PMC_EV(P4, MOB_LOAD_REPLAY) \ 87 __PMC_EV(P4, PAGE_WALK_TYPE) \ 88 __PMC_EV(P4, BSQ_CACHE_REFERENCE) \ 89 __PMC_EV(P4, IOQ_ALLOCATION) \ 90 __PMC_EV(P4, IOQ_ACTIVE_ENTRIES) \ 91 __PMC_EV(P4, FSB_DATA_ACTIVITY) \ 92 __PMC_EV(P4, BSQ_ALLOCATION) \ 93 __PMC_EV(P4, BSQ_ACTIVE_ENTRIES) \ 94 __PMC_EV(P4, SSE_INPUT_ASSIST) \ 95 __PMC_EV(P4, PACKED_SP_UOP) \ 96 __PMC_EV(P4, PACKED_DP_UOP) \ 97 __PMC_EV(P4, SCALAR_SP_UOP) \ 98 __PMC_EV(P4, SCALAR_DP_UOP) \ 99 __PMC_EV(P4, 64BIT_MMX_UOP) \ 100 __PMC_EV(P4, 128BIT_MMX_UOP) \ 101 __PMC_EV(P4, X87_FP_UOP) \ 102 __PMC_EV(P4, X87_SIMD_MOVES_UOP) \ 103 __PMC_EV(P4, GLOBAL_POWER_EVENTS) \ 104 __PMC_EV(P4, TC_MS_XFER) \ 105 __PMC_EV(P4, UOP_QUEUE_WRITES) \ 106 __PMC_EV(P4, RETIRED_MISPRED_BRANCH_TYPE) \ 107 __PMC_EV(P4, RETIRED_BRANCH_TYPE) \ 108 __PMC_EV(P4, RESOURCE_STALL) \ 109 __PMC_EV(P4, WC_BUFFER) \ 110 __PMC_EV(P4, B2B_CYCLES) \ 111 __PMC_EV(P4, BNR) \ 112 __PMC_EV(P4, SNOOP) \ 113 __PMC_EV(P4, RESPONSE) \ 114 __PMC_EV(P4, FRONT_END_EVENT) \ 115 __PMC_EV(P4, EXECUTION_EVENT) \ 116 __PMC_EV(P4, REPLAY_EVENT) \ 117 __PMC_EV(P4, INSTR_RETIRED) \ 118 __PMC_EV(P4, UOPS_RETIRED) \ 119 __PMC_EV(P4, UOP_TYPE) \ 120 __PMC_EV(P4, BRANCH_RETIRED) \ 121 __PMC_EV(P4, MISPRED_BRANCH_RETIRED) \ 122 __PMC_EV(P4, X87_ASSIST) \ 123 __PMC_EV(P4, MACHINE_CLEAR) 124 125 #define PMC_EV_P4_FIRST PMC_EV_P4_TC_DELIVER_MODE 126 #define PMC_EV_P4_LAST PMC_EV_P4_MACHINE_CLEAR 127 128 /* Intel Pentium Pro, P-II, P-III and Pentium-M style events */ 129 130 #define __PMC_EV_P6() \ 131 __PMC_EV(P6, DATA_MEM_REFS) \ 132 __PMC_EV(P6, DCU_LINES_IN) \ 133 __PMC_EV(P6, DCU_M_LINES_IN) \ 134 __PMC_EV(P6, DCU_M_LINES_OUT) \ 135 __PMC_EV(P6, DCU_MISS_OUTSTANDING) \ 136 __PMC_EV(P6, IFU_FETCH) \ 137 __PMC_EV(P6, IFU_FETCH_MISS) \ 138 __PMC_EV(P6, ITLB_MISS) \ 139 __PMC_EV(P6, IFU_MEM_STALL) \ 140 __PMC_EV(P6, ILD_STALL) \ 141 __PMC_EV(P6, L2_IFETCH) \ 142 __PMC_EV(P6, L2_LD) \ 143 __PMC_EV(P6, L2_ST) \ 144 __PMC_EV(P6, L2_LINES_IN) \ 145 __PMC_EV(P6, L2_LINES_OUT) \ 146 __PMC_EV(P6, L2_M_LINES_INM) \ 147 __PMC_EV(P6, L2_M_LINES_OUTM) \ 148 __PMC_EV(P6, L2_RQSTS) \ 149 __PMC_EV(P6, L2_ADS) \ 150 __PMC_EV(P6, L2_DBUS_BUSY) \ 151 __PMC_EV(P6, L2_DBUS_BUSY_RD) \ 152 __PMC_EV(P6, BUS_DRDY_CLOCKS) \ 153 __PMC_EV(P6, BUS_LOCK_CLOCKS) \ 154 __PMC_EV(P6, BUS_REQ_OUTSTANDING) \ 155 __PMC_EV(P6, BUS_TRAN_BRD) \ 156 __PMC_EV(P6, BUS_TRAN_RFO) \ 157 __PMC_EV(P6, BUS_TRANS_WB) \ 158 __PMC_EV(P6, BUS_TRAN_IFETCH) \ 159 __PMC_EV(P6, BUS_TRAN_INVAL) \ 160 __PMC_EV(P6, BUS_TRAN_PWR) \ 161 __PMC_EV(P6, BUS_TRANS_P) \ 162 __PMC_EV(P6, BUS_TRANS_IO) \ 163 __PMC_EV(P6, BUS_TRAN_DEF) \ 164 __PMC_EV(P6, BUS_TRAN_BURST) \ 165 __PMC_EV(P6, BUS_TRAN_ANY) \ 166 __PMC_EV(P6, BUS_TRAN_MEM) \ 167 __PMC_EV(P6, BUS_DATA_RCV) \ 168 __PMC_EV(P6, BUS_BNR_DRV) \ 169 __PMC_EV(P6, BUS_HIT_DRV) \ 170 __PMC_EV(P6, BUS_HITM_DRV) \ 171 __PMC_EV(P6, BUS_SNOOP_STALL) \ 172 __PMC_EV(P6, FLOPS) \ 173 __PMC_EV(P6, FP_COMPS_OPS_EXE) \ 174 __PMC_EV(P6, FP_ASSIST) \ 175 __PMC_EV(P6, MUL) \ 176 __PMC_EV(P6, DIV) \ 177 __PMC_EV(P6, CYCLES_DIV_BUSY) \ 178 __PMC_EV(P6, LD_BLOCKS) \ 179 __PMC_EV(P6, SB_DRAINS) \ 180 __PMC_EV(P6, MISALIGN_MEM_REF) \ 181 __PMC_EV(P6, EMON_KNI_PREF_DISPATCHED) \ 182 __PMC_EV(P6, EMON_KNI_PREF_MISS) \ 183 __PMC_EV(P6, INST_RETIRED) \ 184 __PMC_EV(P6, UOPS_RETIRED) \ 185 __PMC_EV(P6, INST_DECODED) \ 186 __PMC_EV(P6, EMON_KNI_INST_RETIRED) \ 187 __PMC_EV(P6, EMON_KNI_COMP_INST_RET) \ 188 __PMC_EV(P6, HW_INT_RX) \ 189 __PMC_EV(P6, CYCLES_INT_MASKED) \ 190 __PMC_EV(P6, CYCLES_INT_PENDING_AND_MASKED) \ 191 __PMC_EV(P6, BR_INST_RETIRED) \ 192 __PMC_EV(P6, BR_MISS_PRED_RETIRED) \ 193 __PMC_EV(P6, BR_TAKEN_RETIRED) \ 194 __PMC_EV(P6, BR_MISS_PRED_TAKEN_RET) \ 195 __PMC_EV(P6, BR_INST_DECODED) \ 196 __PMC_EV(P6, BTB_MISSES) \ 197 __PMC_EV(P6, BR_BOGUS) \ 198 __PMC_EV(P6, BACLEARS) \ 199 __PMC_EV(P6, RESOURCE_STALLS) \ 200 __PMC_EV(P6, PARTIAL_RAT_STALLS) \ 201 __PMC_EV(P6, SEGMENT_REG_LOADS) \ 202 __PMC_EV(P6, CPU_CLK_UNHALTED) \ 203 __PMC_EV(P6, MMX_INSTR_EXEC) \ 204 __PMC_EV(P6, MMX_SAT_INSTR_EXEC) \ 205 __PMC_EV(P6, MMX_UOPS_EXEC) \ 206 __PMC_EV(P6, MMX_INSTR_TYPE_EXEC) \ 207 __PMC_EV(P6, FP_MMX_TRANS) \ 208 __PMC_EV(P6, MMX_ASSIST) \ 209 __PMC_EV(P6, MMX_INSTR_RET) \ 210 __PMC_EV(P6, SEG_RENAME_STALLS) \ 211 __PMC_EV(P6, SEG_REG_RENAMES) \ 212 __PMC_EV(P6, RET_SEG_RENAMES) \ 213 __PMC_EV(P6, EMON_EST_TRANS) \ 214 __PMC_EV(P6, EMON_THERMAL_TRIP) \ 215 __PMC_EV(P6, BR_INST_EXEC) \ 216 __PMC_EV(P6, BR_MISSP_EXEC) \ 217 __PMC_EV(P6, BR_BAC_MISSP_EXEC) \ 218 __PMC_EV(P6, BR_CND_EXEC) \ 219 __PMC_EV(P6, BR_CND_MISSP_EXEC) \ 220 __PMC_EV(P6, BR_IND_EXEC) \ 221 __PMC_EV(P6, BR_IND_MISSP_EXEC) \ 222 __PMC_EV(P6, BR_RET_EXEC) \ 223 __PMC_EV(P6, BR_RET_MISSP_EXEC) \ 224 __PMC_EV(P6, BR_RET_BAC_MISSP_EXEC) \ 225 __PMC_EV(P6, BR_CALL_EXEC) \ 226 __PMC_EV(P6, BR_CALL_MISSP_EXEC) \ 227 __PMC_EV(P6, BR_IND_CALL_EXEC) \ 228 __PMC_EV(P6, EMON_SIMD_INSTR_RETIRED) \ 229 __PMC_EV(P6, EMON_SYNCH_UOPS) \ 230 __PMC_EV(P6, EMON_ESP_UOPS) \ 231 __PMC_EV(P6, EMON_FUSED_UOPS_RET) \ 232 __PMC_EV(P6, EMON_UNFUSION) \ 233 __PMC_EV(P6, EMON_PREF_RQSTS_UP) \ 234 __PMC_EV(P6, EMON_PREF_RQSTS_DN) \ 235 __PMC_EV(P6, EMON_SSE_SSE2_INST_RETIRED) \ 236 __PMC_EV(P6, EMON_SSE_SSE2_COMP_INST_RETIRED) 237 238 239 #define PMC_EV_P6_FIRST PMC_EV_P6_DATA_MEM_REFS 240 #define PMC_EV_P6_LAST PMC_EV_P6_EMON_SSE_SSE2_COMP_INST_RETIRED 241 242 /* AMD K8 PMCs */ 243 244 #define __PMC_EV_K8() \ 245 __PMC_EV(K8, FP_DISPATCHED_FPU_OPS) \ 246 __PMC_EV(K8, FP_CYCLES_WITH_NO_FPU_OPS_RETIRED) \ 247 __PMC_EV(K8, FP_DISPATCHED_FPU_FAST_FLAG_OPS) \ 248 __PMC_EV(K8, LS_SEGMENT_REGISTER_LOAD) \ 249 __PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SELF_MODIFYING_CODE) \ 250 __PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SNOOP) \ 251 __PMC_EV(K8, LS_BUFFER2_FULL) \ 252 __PMC_EV(K8, LS_LOCKED_OPERATION) \ 253 __PMC_EV(K8, LS_MICROARCHITECTURAL_LATE_CANCEL) \ 254 __PMC_EV(K8, LS_RETIRED_CFLUSH_INSTRUCTIONS) \ 255 __PMC_EV(K8, LS_RETIRED_CPUID_INSTRUCTIONS) \ 256 __PMC_EV(K8, DC_ACCESS) \ 257 __PMC_EV(K8, DC_MISS) \ 258 __PMC_EV(K8, DC_REFILL_FROM_L2) \ 259 __PMC_EV(K8, DC_REFILL_FROM_SYSTEM) \ 260 __PMC_EV(K8, DC_COPYBACK) \ 261 __PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_HIT) \ 262 __PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_MISS) \ 263 __PMC_EV(K8, DC_MISALIGNED_DATA_REFERENCE) \ 264 __PMC_EV(K8, DC_MICROARCHITECTURAL_LATE_CANCEL) \ 265 __PMC_EV(K8, DC_MICROARCHITECTURAL_EARLY_CANCEL) \ 266 __PMC_EV(K8, DC_ONE_BIT_ECC_ERROR) \ 267 __PMC_EV(K8, DC_DISPATCHED_PREFETCH_INSTRUCTIONS) \ 268 __PMC_EV(K8, DC_DCACHE_ACCESSES_BY_LOCKS) \ 269 __PMC_EV(K8, BU_CPU_CLK_UNHALTED) \ 270 __PMC_EV(K8, BU_INTERNAL_L2_REQUEST) \ 271 __PMC_EV(K8, BU_FILL_REQUEST_L2_MISS) \ 272 __PMC_EV(K8, BU_FILL_INTO_L2) \ 273 __PMC_EV(K8, IC_FETCH) \ 274 __PMC_EV(K8, IC_MISS) \ 275 __PMC_EV(K8, IC_REFILL_FROM_L2) \ 276 __PMC_EV(K8, IC_REFILL_FROM_SYSTEM) \ 277 __PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_HIT) \ 278 __PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_MISS) \ 279 __PMC_EV(K8, IC_MICROARCHITECTURAL_RESYNC_BY_SNOOP) \ 280 __PMC_EV(K8, IC_INSTRUCTION_FETCH_STALL) \ 281 __PMC_EV(K8, IC_RETURN_STACK_HIT) \ 282 __PMC_EV(K8, IC_RETURN_STACK_OVERFLOW) \ 283 __PMC_EV(K8, FR_RETIRED_X86_INSTRUCTIONS) \ 284 __PMC_EV(K8, FR_RETIRED_UOPS) \ 285 __PMC_EV(K8, FR_RETIRED_BRANCHES) \ 286 __PMC_EV(K8, FR_RETIRED_BRANCHES_MISPREDICTED) \ 287 __PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES) \ 288 __PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED) \ 289 __PMC_EV(K8, FR_RETIRED_FAR_CONTROL_TRANSFERS) \ 290 __PMC_EV(K8, FR_RETIRED_RESYNCS) \ 291 __PMC_EV(K8, FR_RETIRED_NEAR_RETURNS) \ 292 __PMC_EV(K8, FR_RETIRED_NEAR_RETURNS_MISPREDICTED) \ 293 __PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED_BY_ADDR_MISCOMPARE) \ 294 __PMC_EV(K8, FR_RETIRED_FPU_INSTRUCTIONS) \ 295 __PMC_EV(K8, FR_RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS) \ 296 __PMC_EV(K8, FR_INTERRUPTS_MASKED_CYCLES) \ 297 __PMC_EV(K8, FR_INTERRUPTS_MASKED_WHILE_PENDING_CYCLES) \ 298 __PMC_EV(K8, FR_TAKEN_HARDWARE_INTERRUPTS) \ 299 __PMC_EV(K8, FR_DECODER_EMPTY) \ 300 __PMC_EV(K8, FR_DISPATCH_STALLS) \ 301 __PMC_EV(K8, FR_DISPATCH_STALL_FROM_BRANCH_ABORT_TO_RETIRE) \ 302 __PMC_EV(K8, FR_DISPATCH_STALL_FOR_SERIALIZATION) \ 303 __PMC_EV(K8, FR_DISPATCH_STALL_FOR_SEGMENT_LOAD) \ 304 __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_REORDER_BUFFER_IS_FULL) \ 305 __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_RESERVATION_STATIONS_ARE_FULL) \ 306 __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FPU_IS_FULL) \ 307 __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_LS_IS_FULL) \ 308 __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_WAITING_FOR_ALL_TO_BE_QUIET) \ 309 __PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FAR_XFER_OR_RESYNC_BRANCH_PENDING) \ 310 __PMC_EV(K8, FR_FPU_EXCEPTIONS) \ 311 __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR0) \ 312 __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR1) \ 313 __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR2) \ 314 __PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR3) \ 315 __PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_ACCESS_EVENT) \ 316 __PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOW) \ 317 __PMC_EV(K8, NB_MEMORY_CONTROLLER_DRAM_COMMAND_SLOTS_MISSED) \ 318 __PMC_EV(K8, NB_MEMORY_CONTROLLER_TURNAROUND) \ 319 __PMC_EV(K8, NB_MEMORY_CONTROLLER_BYPASS_SATURATION) \ 320 __PMC_EV(K8, NB_SIZED_COMMANDS) \ 321 __PMC_EV(K8, NB_PROBE_RESULT) \ 322 __PMC_EV(K8, NB_HT_BUS0_BANDWIDTH) \ 323 __PMC_EV(K8, NB_HT_BUS1_BANDWIDTH) \ 324 __PMC_EV(K8, NB_HT_BUS2_BANDWIDTH) 325 326 #define PMC_EV_K8_FIRST PMC_EV_K8_FP_DISPATCHED_FPU_OPS 327 #define PMC_EV_K8_LAST PMC_EV_K8_NB_HT_BUS2_BANDWIDTH 328 329 330 /* 331 * Intel Pentium and Pentium MMX events, from the "Intel 64 and IA-32 332 * Architectures Software Developer's Manual, Volume 3B: System Programming 333 * Guide, Part 2, August 2007". 334 */ 335 #define __PMC_EV_P5() \ 336 __PMC_EV(P5, DATA_READ) \ 337 __PMC_EV(P5, DATA_WRITE) \ 338 __PMC_EV(P5, DATA_TLB_MISS) \ 339 __PMC_EV(P5, DATA_READ_MISS) \ 340 __PMC_EV(P5, DATA_WRITE_MISS) \ 341 __PMC_EV(P5, WRITE_HIT_TO_M_OR_E_STATE_LINES) \ 342 __PMC_EV(P5, DATA_CACHE_LINES_WRITTEN_BACK) \ 343 __PMC_EV(P5, EXTERNAL_SNOOPS) \ 344 __PMC_EV(P5, EXTERNAL_DATA_CACHE_SNOOP_HITS) \ 345 __PMC_EV(P5, MEMORY_ACCESSES_IN_BOTH_PIPES) \ 346 __PMC_EV(P5, BANK_CONFLICTS) \ 347 __PMC_EV(P5, MISALIGNED_DATA_OR_IO_REFERENCES) \ 348 __PMC_EV(P5, CODE_READ) \ 349 __PMC_EV(P5, CODE_TLB_MISS) \ 350 __PMC_EV(P5, CODE_CACHE_MISS) \ 351 __PMC_EV(P5, ANY_SEGMENT_REGISTER_LOADED) \ 352 __PMC_EV(P5, BRANCHES) \ 353 __PMC_EV(P5, BTB_HITS) \ 354 __PMC_EV(P5, TAKEN_BRANCH_OR_BTB_HIT) \ 355 __PMC_EV(P5, PIPELINE_FLUSHES) \ 356 __PMC_EV(P5, INSTRUCTIONS_EXECUTED) \ 357 __PMC_EV(P5, INSTRUCTIONS_EXECUTED_V_PIPE) \ 358 __PMC_EV(P5, BUS_CYCLE_DURATION) \ 359 __PMC_EV(P5, WRITE_BUFFER_FULL_STALL_DURATION) \ 360 __PMC_EV(P5, WAITING_FOR_DATA_MEMORY_READ_STALL_DURATION) \ 361 __PMC_EV(P5, STALL_ON_WRITE_TO_AN_E_OR_M_STATE_LINE) \ 362 __PMC_EV(P5, LOCKED_BUS_CYCLE) \ 363 __PMC_EV(P5, IO_READ_OR_WRITE_CYCLE) \ 364 __PMC_EV(P5, NONCACHEABLE_MEMORY_READS) \ 365 __PMC_EV(P5, PIPELINE_AGI_STALLS) \ 366 __PMC_EV(P5, FLOPS) \ 367 __PMC_EV(P5, BREAKPOINT_MATCH_ON_DR0_REGISTER) \ 368 __PMC_EV(P5, BREAKPOINT_MATCH_ON_DR1_REGISTER) \ 369 __PMC_EV(P5, BREAKPOINT_MATCH_ON_DR2_REGISTER) \ 370 __PMC_EV(P5, BREAKPOINT_MATCH_ON_DR3_REGISTER) \ 371 __PMC_EV(P5, HARDWARE_INTERRUPTS) \ 372 __PMC_EV(P5, DATA_READ_OR_WRITE) \ 373 __PMC_EV(P5, DATA_READ_MISS_OR_WRITE_MISS) \ 374 __PMC_EV(P5, BUS_OWNERSHIP_LATENCY) \ 375 __PMC_EV(P5, BUS_OWNERSHIP_TRANSFERS) \ 376 __PMC_EV(P5, MMX_INSTRUCTIONS_EXECUTED_U_PIPE) \ 377 __PMC_EV(P5, MMX_INSTRUCTIONS_EXECUTED_V_PIPE) \ 378 __PMC_EV(P5, CACHE_M_LINE_SHARING) \ 379 __PMC_EV(P5, CACHE_LINE_SHARING) \ 380 __PMC_EV(P5, EMMS_INSTRUCTIONS_EXECUTED) \ 381 __PMC_EV(P5, TRANSITIONS_BETWEEN_MMX_AND_FP_INSTRUCTIONS) \ 382 __PMC_EV(P5, BUS_UTILIZATION_DUE_TO_PROCESSOR_ACTIVITY) \ 383 __PMC_EV(P5, WRITES_TO_NONCACHEABLE_MEMORY) \ 384 __PMC_EV(P5, SATURATING_MMX_INSTRUCTIONS_EXECUTED) \ 385 __PMC_EV(P5, SATURATIONS_PERFORMED) \ 386 __PMC_EV(P5, NUMBER_OF_CYCLES_NOT_IN_HALT_STATE) \ 387 __PMC_EV(P5, DATA_CACHE_TLB_MISS_STALL_DURATION) \ 388 __PMC_EV(P5, MMX_INSTRUCTION_DATA_READS) \ 389 __PMC_EV(P5, MMX_INSTRUCTION_DATA_READ_MISSES) \ 390 __PMC_EV(P5, FLOATING_POINT_STALLS_DURATION) \ 391 __PMC_EV(P5, TAKEN_BRANCHES) \ 392 __PMC_EV(P5, D1_STARVATION_AND_FIFO_IS_EMPTY) \ 393 __PMC_EV(P5, D1_STARVATION_AND_ONLY_ONE_INSTRUCTION_IN_FIFO) \ 394 __PMC_EV(P5, MMX_INSTRUCTION_DATA_WRITES) \ 395 __PMC_EV(P5, MMX_INSTRUCTION_DATA_WRITE_MISSES) \ 396 __PMC_EV(P5, PIPELINE_FLUSHES_DUE_TO_WRONG_BRANCH_PREDICTIONS) \ 397 __PMC_EV(P5, \ 398 PIPELINE_FLUSHES_DUE_TO_WRONG_BRANCH_PREDICTIONS_RESOLVED_IN_WB_STAGE) \ 399 __PMC_EV(P5, MISALIGNED_DATA_MEMORY_REFERENCE_ON_MMX_INSTRUCTIONS) \ 400 __PMC_EV(P5, PIPELINE_STALL_FOR_MMX_INSTRUCTION_DATA_MEMORY_READS) \ 401 __PMC_EV(P5, MISPREDICTED_OR_UNPREDICTED_RETURNS) \ 402 __PMC_EV(P5, PREDICTED_RETURNS) \ 403 __PMC_EV(P5, MMX_MULTIPLY_UNIT_INTERLOCK) \ 404 __PMC_EV(P5, MOVD_MOVQ_STORE_STALL_DUE_TO_PREVIOUS_MMX_OPERATION) \ 405 __PMC_EV(P5, RETURNS) \ 406 __PMC_EV(P5, BTB_FALSE_ENTRIES) \ 407 __PMC_EV(P5, BTB_MISS_PREDICTION_ON_NOT_TAKEN_BRANCH) \ 408 __PMC_EV(P5, \ 409 FULL_WRITE_BUFFER_STALL_DURATION_WHILE_EXECUTING_MMX_INSTRUCTIONS) \ 410 __PMC_EV(P5, STALL_ON_MMX_INSTRUCTION_WRITE_TO_E_OR_M_STATE_LINE) 411 412 #define PMC_EV_P5_FIRST PMC_EV_P5_DATA_READ 413 #define PMC_EV_P5_LAST \ 414 PMC_EV_P5_STALL_ON_MMX_INSTRUCTION_WRITE_TO_E_OR_M_STATE_LINE 415 416 /* 417 * Events supported by Intel architectural fixed function counters, 418 * from the "Intel 64 and IA-32 Architectures Software Developer's 419 * Manual Volume 3B: System Programming Guide, Part 2", July 2008. 420 */ 421 #define __PMC_EV_IAF() \ 422 __PMC_EV(IAF, INSTR_RETIRED_ANY) \ 423 __PMC_EV(IAF, CPU_CLK_UNHALTED_CORE) \ 424 __PMC_EV(IAF, CPU_CLK_UNHALTED_REF) 425 426 #define PMC_EV_IAF_FIRST PMC_EV_IAF_INSTR_RETIRED_ANY 427 #define PMC_EV_IAF_LAST PMC_EV_IAF_CPU_CLK_UNHALTED_REF 428 429 #define __PMC_EV_ALIAS_IAF() \ 430 __PMC_EV_ALIAS("instruction-retired", IAF_INSTR_RETIRED_ANY) \ 431 __PMC_EV_ALIAS("unhalted-core-cycles", IAF_CPU_CLK_UNHALTED_CORE) \ 432 __PMC_EV_ALIAS("unhalted-reference-cycles", IAF_CPU_CLK_UNHALTED_REF) 433 434 /* 435 * Events supported by programmable function counters present in 436 * Intel Atom, Core and Core2 CPUs, from the "Intel 64 and IA-32 437 * Architectures Software Developer's Manual Volume 3B: System Programming 438 * Guide, Part 2", July 2008. 439 * 440 * These PMCs select events with a combination of an event code and 441 * unit mask. Quirks that need to be taken care of include: 442 * - The set of (event code, umask) combinations supported by a processor 443 * varies according to the processor model. 444 * - A given (event code, umask) combination need not measure the same 445 * hardware event in all processor models. 446 * - Event names in vendor documentation for an (event code, umask) pair 447 * may vary according to the CPU model. 448 * - Identically named events can map to different (event code, umask) 449 * pairs on different CPUs. 450 * - New (event code, umask) combinations continue to be added as CPUs 451 * evolve. The interface between hwpmc(4) and libpmc(3) needs to be 452 * robust with respect to ABI changes. 453 * 454 * The IAP_EVENT_* symbols below define the ABI between userland and kernel. 455 * New (event code, * umask) combinations used in new CPUs would be added 456 * to the end of the list. Vendor names for events are mapped to IAP_EVENT_* 457 * symbols using aliases. The final disambiguation of semantics based on 458 * the CPU model happens inside hwpmc(4). 459 */ 460 #define __PMC_EV_IAP() \ 461 __PMC_EV(IAP, EVENT_02H_81H) \ 462 __PMC_EV(IAP, EVENT_03H_00H) \ 463 __PMC_EV(IAP, EVENT_03H_02H) \ 464 __PMC_EV(IAP, EVENT_03H_04H) \ 465 __PMC_EV(IAP, EVENT_03H_08H) \ 466 __PMC_EV(IAP, EVENT_03H_10H) \ 467 __PMC_EV(IAP, EVENT_03H_20H) \ 468 __PMC_EV(IAP, EVENT_04H_00H) \ 469 __PMC_EV(IAP, EVENT_04H_01H) \ 470 __PMC_EV(IAP, EVENT_04H_02H) \ 471 __PMC_EV(IAP, EVENT_04H_08H) \ 472 __PMC_EV(IAP, EVENT_05H_00H) \ 473 __PMC_EV(IAP, EVENT_06H_00H) \ 474 __PMC_EV(IAP, EVENT_07H_00H) \ 475 __PMC_EV(IAP, EVENT_07H_01H) \ 476 __PMC_EV(IAP, EVENT_07H_02H) \ 477 __PMC_EV(IAP, EVENT_07H_03H) \ 478 __PMC_EV(IAP, EVENT_07H_06H) \ 479 __PMC_EV(IAP, EVENT_07H_08H) \ 480 __PMC_EV(IAP, EVENT_08H_01H) \ 481 __PMC_EV(IAP, EVENT_08H_02H) \ 482 __PMC_EV(IAP, EVENT_08H_04H) \ 483 __PMC_EV(IAP, EVENT_08H_05H) \ 484 __PMC_EV(IAP, EVENT_08H_06H) \ 485 __PMC_EV(IAP, EVENT_08H_07H) \ 486 __PMC_EV(IAP, EVENT_08H_08H) \ 487 __PMC_EV(IAP, EVENT_08H_09H) \ 488 __PMC_EV(IAP, EVENT_09H_01H) \ 489 __PMC_EV(IAP, EVENT_09H_02H) \ 490 __PMC_EV(IAP, EVENT_0CH_01H) \ 491 __PMC_EV(IAP, EVENT_0CH_02H) \ 492 __PMC_EV(IAP, EVENT_0CH_03H) \ 493 __PMC_EV(IAP, EVENT_10H_00H) \ 494 __PMC_EV(IAP, EVENT_10H_01H) \ 495 __PMC_EV(IAP, EVENT_10H_81H) \ 496 __PMC_EV(IAP, EVENT_11H_00H) \ 497 __PMC_EV(IAP, EVENT_11H_01H) \ 498 __PMC_EV(IAP, EVENT_11H_81H) \ 499 __PMC_EV(IAP, EVENT_12H_00H) \ 500 __PMC_EV(IAP, EVENT_12H_01H) \ 501 __PMC_EV(IAP, EVENT_12H_81H) \ 502 __PMC_EV(IAP, EVENT_13H_00H) \ 503 __PMC_EV(IAP, EVENT_13H_01H) \ 504 __PMC_EV(IAP, EVENT_13H_81H) \ 505 __PMC_EV(IAP, EVENT_14H_00H) \ 506 __PMC_EV(IAP, EVENT_14H_01H) \ 507 __PMC_EV(IAP, EVENT_18H_00H) \ 508 __PMC_EV(IAP, EVENT_19H_00H) \ 509 __PMC_EV(IAP, EVENT_19H_01H) \ 510 __PMC_EV(IAP, EVENT_19H_02H) \ 511 __PMC_EV(IAP, EVENT_21H) \ 512 __PMC_EV(IAP, EVENT_22H) \ 513 __PMC_EV(IAP, EVENT_23H) \ 514 __PMC_EV(IAP, EVENT_24H) \ 515 __PMC_EV(IAP, EVENT_25H) \ 516 __PMC_EV(IAP, EVENT_26H) \ 517 __PMC_EV(IAP, EVENT_27H) \ 518 __PMC_EV(IAP, EVENT_28H) \ 519 __PMC_EV(IAP, EVENT_29H) \ 520 __PMC_EV(IAP, EVENT_2AH) \ 521 __PMC_EV(IAP, EVENT_2BH) \ 522 __PMC_EV(IAP, EVENT_2EH) \ 523 __PMC_EV(IAP, EVENT_2EH_41H) \ 524 __PMC_EV(IAP, EVENT_2EH_4FH) \ 525 __PMC_EV(IAP, EVENT_30H) \ 526 __PMC_EV(IAP, EVENT_32H) \ 527 __PMC_EV(IAP, EVENT_3AH) \ 528 __PMC_EV(IAP, EVENT_3AH_00H) \ 529 __PMC_EV(IAP, EVENT_3BH_C0H) \ 530 __PMC_EV(IAP, EVENT_3CH_00H) \ 531 __PMC_EV(IAP, EVENT_3CH_01H) \ 532 __PMC_EV(IAP, EVENT_3CH_02H) \ 533 __PMC_EV(IAP, EVENT_40H) \ 534 __PMC_EV(IAP, EVENT_40H_21H) \ 535 __PMC_EV(IAP, EVENT_41H) \ 536 __PMC_EV(IAP, EVENT_41H_22H) \ 537 __PMC_EV(IAP, EVENT_42H) \ 538 __PMC_EV(IAP, EVENT_42H_10H) \ 539 __PMC_EV(IAP, EVENT_43H_01H) \ 540 __PMC_EV(IAP, EVENT_43H_02H) \ 541 __PMC_EV(IAP, EVENT_44H_02H) \ 542 __PMC_EV(IAP, EVENT_45H_0FH) \ 543 __PMC_EV(IAP, EVENT_46H_00H) \ 544 __PMC_EV(IAP, EVENT_47H_00H) \ 545 __PMC_EV(IAP, EVENT_48H_00H) \ 546 __PMC_EV(IAP, EVENT_49H_00H) \ 547 __PMC_EV(IAP, EVENT_49H_01H) \ 548 __PMC_EV(IAP, EVENT_49H_02H) \ 549 __PMC_EV(IAP, EVENT_4BH_00H) \ 550 __PMC_EV(IAP, EVENT_4BH_01H) \ 551 __PMC_EV(IAP, EVENT_4BH_02H) \ 552 __PMC_EV(IAP, EVENT_4BH_03H) \ 553 __PMC_EV(IAP, EVENT_4CH_00H) \ 554 __PMC_EV(IAP, EVENT_4EH_10H) \ 555 __PMC_EV(IAP, EVENT_4FH_00H) \ 556 __PMC_EV(IAP, EVENT_60H) \ 557 __PMC_EV(IAP, EVENT_61H) \ 558 __PMC_EV(IAP, EVENT_61H_00H) \ 559 __PMC_EV(IAP, EVENT_62H) \ 560 __PMC_EV(IAP, EVENT_62H_00H) \ 561 __PMC_EV(IAP, EVENT_63H) \ 562 __PMC_EV(IAP, EVENT_64H) \ 563 __PMC_EV(IAP, EVENT_64H_40H) \ 564 __PMC_EV(IAP, EVENT_65H) \ 565 __PMC_EV(IAP, EVENT_66H) \ 566 __PMC_EV(IAP, EVENT_67H) \ 567 __PMC_EV(IAP, EVENT_68H) \ 568 __PMC_EV(IAP, EVENT_69H) \ 569 __PMC_EV(IAP, EVENT_6AH) \ 570 __PMC_EV(IAP, EVENT_6BH) \ 571 __PMC_EV(IAP, EVENT_6CH) \ 572 __PMC_EV(IAP, EVENT_6DH) \ 573 __PMC_EV(IAP, EVENT_6EH) \ 574 __PMC_EV(IAP, EVENT_6FH) \ 575 __PMC_EV(IAP, EVENT_70H) \ 576 __PMC_EV(IAP, EVENT_77H) \ 577 __PMC_EV(IAP, EVENT_78H) \ 578 __PMC_EV(IAP, EVENT_7AH) \ 579 __PMC_EV(IAP, EVENT_7BH) \ 580 __PMC_EV(IAP, EVENT_7DH) \ 581 __PMC_EV(IAP, EVENT_7EH) \ 582 __PMC_EV(IAP, EVENT_7EH_00H) \ 583 __PMC_EV(IAP, EVENT_7FH) \ 584 __PMC_EV(IAP, EVENT_80H_00H) \ 585 __PMC_EV(IAP, EVENT_80H_02H) \ 586 __PMC_EV(IAP, EVENT_80H_03H) \ 587 __PMC_EV(IAP, EVENT_81H_00H) \ 588 __PMC_EV(IAP, EVENT_82H_02H) \ 589 __PMC_EV(IAP, EVENT_82H_04H) \ 590 __PMC_EV(IAP, EVENT_82H_10H) \ 591 __PMC_EV(IAP, EVENT_82H_12H) \ 592 __PMC_EV(IAP, EVENT_82H_40H) \ 593 __PMC_EV(IAP, EVENT_83H_02H) \ 594 __PMC_EV(IAP, EVENT_85H_00H) \ 595 __PMC_EV(IAP, EVENT_86H_00H) \ 596 __PMC_EV(IAP, EVENT_87H_00H) \ 597 __PMC_EV(IAP, EVENT_88H_00H) \ 598 __PMC_EV(IAP, EVENT_89H_00H) \ 599 __PMC_EV(IAP, EVENT_8AH_00H) \ 600 __PMC_EV(IAP, EVENT_8BH_00H) \ 601 __PMC_EV(IAP, EVENT_8CH_00H) \ 602 __PMC_EV(IAP, EVENT_8DH_00H) \ 603 __PMC_EV(IAP, EVENT_8EH_00H) \ 604 __PMC_EV(IAP, EVENT_8FH_00H) \ 605 __PMC_EV(IAP, EVENT_90H_00H) \ 606 __PMC_EV(IAP, EVENT_91H_00H) \ 607 __PMC_EV(IAP, EVENT_92H_00H) \ 608 __PMC_EV(IAP, EVENT_93H_00H) \ 609 __PMC_EV(IAP, EVENT_94H_00H) \ 610 __PMC_EV(IAP, EVENT_97H_00H) \ 611 __PMC_EV(IAP, EVENT_98H_00H) \ 612 __PMC_EV(IAP, EVENT_A0H_00H) \ 613 __PMC_EV(IAP, EVENT_A1H_01H) \ 614 __PMC_EV(IAP, EVENT_A1H_02H) \ 615 __PMC_EV(IAP, EVENT_A1H_04H) \ 616 __PMC_EV(IAP, EVENT_A1H_08H) \ 617 __PMC_EV(IAP, EVENT_A1H_10H) \ 618 __PMC_EV(IAP, EVENT_A1H_20H) \ 619 __PMC_EV(IAP, EVENT_A2H_00H) \ 620 __PMC_EV(IAP, EVENT_AAH_01H) \ 621 __PMC_EV(IAP, EVENT_AAH_02H) \ 622 __PMC_EV(IAP, EVENT_AAH_03H) \ 623 __PMC_EV(IAP, EVENT_AAH_08H) \ 624 __PMC_EV(IAP, EVENT_ABH_01H) \ 625 __PMC_EV(IAP, EVENT_ABH_02H) \ 626 __PMC_EV(IAP, EVENT_B0H_00H) \ 627 __PMC_EV(IAP, EVENT_B0H_80H) \ 628 __PMC_EV(IAP, EVENT_B1H_00H) \ 629 __PMC_EV(IAP, EVENT_B1H_80H) \ 630 __PMC_EV(IAP, EVENT_B3H_01H) \ 631 __PMC_EV(IAP, EVENT_B3H_02H) \ 632 __PMC_EV(IAP, EVENT_B3H_04H) \ 633 __PMC_EV(IAP, EVENT_B3H_08H) \ 634 __PMC_EV(IAP, EVENT_B3H_10H) \ 635 __PMC_EV(IAP, EVENT_B3H_20H) \ 636 __PMC_EV(IAP, EVENT_B3H_81H) \ 637 __PMC_EV(IAP, EVENT_B3H_82H) \ 638 __PMC_EV(IAP, EVENT_B3H_84H) \ 639 __PMC_EV(IAP, EVENT_B3H_88H) \ 640 __PMC_EV(IAP, EVENT_B3H_90H) \ 641 __PMC_EV(IAP, EVENT_B3H_A0H) \ 642 __PMC_EV(IAP, EVENT_C0H_00H) \ 643 __PMC_EV(IAP, EVENT_C0H_01H) \ 644 __PMC_EV(IAP, EVENT_C0H_02H) \ 645 __PMC_EV(IAP, EVENT_C0H_04H) \ 646 __PMC_EV(IAP, EVENT_C0H_08H) \ 647 __PMC_EV(IAP, EVENT_C1H_00H) \ 648 __PMC_EV(IAP, EVENT_C1H_01H) \ 649 __PMC_EV(IAP, EVENT_C1H_FEH) \ 650 __PMC_EV(IAP, EVENT_C2H_00H) \ 651 __PMC_EV(IAP, EVENT_C2H_01H) \ 652 __PMC_EV(IAP, EVENT_C2H_02H) \ 653 __PMC_EV(IAP, EVENT_C2H_04H) \ 654 __PMC_EV(IAP, EVENT_C2H_07H) \ 655 __PMC_EV(IAP, EVENT_C2H_0FH) \ 656 __PMC_EV(IAP, EVENT_C2H_10H) \ 657 __PMC_EV(IAP, EVENT_C2H_08H) \ 658 __PMC_EV(IAP, EVENT_C3H_00H) \ 659 __PMC_EV(IAP, EVENT_C3H_01H) \ 660 __PMC_EV(IAP, EVENT_C3H_04H) \ 661 __PMC_EV(IAP, EVENT_C4H_00H) \ 662 __PMC_EV(IAP, EVENT_C4H_01H) \ 663 __PMC_EV(IAP, EVENT_C4H_02H) \ 664 __PMC_EV(IAP, EVENT_C4H_04H) \ 665 __PMC_EV(IAP, EVENT_C4H_08H) \ 666 __PMC_EV(IAP, EVENT_C4H_0CH) \ 667 __PMC_EV(IAP, EVENT_C4H_0FH) \ 668 __PMC_EV(IAP, EVENT_C5H_00H) \ 669 __PMC_EV(IAP, EVENT_C6H_00H) \ 670 __PMC_EV(IAP, EVENT_C6H_01H) \ 671 __PMC_EV(IAP, EVENT_C6H_02H) \ 672 __PMC_EV(IAP, EVENT_C7H_00H) \ 673 __PMC_EV(IAP, EVENT_C7H_01H) \ 674 __PMC_EV(IAP, EVENT_C7H_02H) \ 675 __PMC_EV(IAP, EVENT_C7H_04H) \ 676 __PMC_EV(IAP, EVENT_C7H_08H) \ 677 __PMC_EV(IAP, EVENT_C7H_10H) \ 678 __PMC_EV(IAP, EVENT_C7H_1FH) \ 679 __PMC_EV(IAP, EVENT_C8H_00H) \ 680 __PMC_EV(IAP, EVENT_C9H_00H) \ 681 __PMC_EV(IAP, EVENT_CAH_00H) \ 682 __PMC_EV(IAP, EVENT_CAH_01H) \ 683 __PMC_EV(IAP, EVENT_CAH_02H) \ 684 __PMC_EV(IAP, EVENT_CAH_04H) \ 685 __PMC_EV(IAP, EVENT_CAH_08H) \ 686 __PMC_EV(IAP, EVENT_CBH_01H) \ 687 __PMC_EV(IAP, EVENT_CBH_02H) \ 688 __PMC_EV(IAP, EVENT_CBH_04H) \ 689 __PMC_EV(IAP, EVENT_CBH_08H) \ 690 __PMC_EV(IAP, EVENT_CBH_10H) \ 691 __PMC_EV(IAP, EVENT_CCH_00H) \ 692 __PMC_EV(IAP, EVENT_CCH_01H) \ 693 __PMC_EV(IAP, EVENT_CCH_02H) \ 694 __PMC_EV(IAP, EVENT_CDH_00H) \ 695 __PMC_EV(IAP, EVENT_CEH_00H) \ 696 __PMC_EV(IAP, EVENT_CFH_00H) \ 697 __PMC_EV(IAP, EVENT_D0H_00H) \ 698 __PMC_EV(IAP, EVENT_D2H_01H) \ 699 __PMC_EV(IAP, EVENT_D2H_02H) \ 700 __PMC_EV(IAP, EVENT_D2H_04H) \ 701 __PMC_EV(IAP, EVENT_D2H_08H) \ 702 __PMC_EV(IAP, EVENT_D2H_0FH) \ 703 __PMC_EV(IAP, EVENT_D2H_10H) \ 704 __PMC_EV(IAP, EVENT_D4H_01H) \ 705 __PMC_EV(IAP, EVENT_D4H_02H) \ 706 __PMC_EV(IAP, EVENT_D4H_04H) \ 707 __PMC_EV(IAP, EVENT_D4H_08H) \ 708 __PMC_EV(IAP, EVENT_D4H_0FH) \ 709 __PMC_EV(IAP, EVENT_D5H_01H) \ 710 __PMC_EV(IAP, EVENT_D5H_02H) \ 711 __PMC_EV(IAP, EVENT_D5H_04H) \ 712 __PMC_EV(IAP, EVENT_D5H_08H) \ 713 __PMC_EV(IAP, EVENT_D5H_0FH) \ 714 __PMC_EV(IAP, EVENT_D7H_00H) \ 715 __PMC_EV(IAP, EVENT_D8H_00H) \ 716 __PMC_EV(IAP, EVENT_D8H_01H) \ 717 __PMC_EV(IAP, EVENT_D8H_02H) \ 718 __PMC_EV(IAP, EVENT_D8H_03H) \ 719 __PMC_EV(IAP, EVENT_D8H_04H) \ 720 __PMC_EV(IAP, EVENT_D9H_00H) \ 721 __PMC_EV(IAP, EVENT_D9H_01H) \ 722 __PMC_EV(IAP, EVENT_D9H_02H) \ 723 __PMC_EV(IAP, EVENT_D9H_03H) \ 724 __PMC_EV(IAP, EVENT_DAH_00H) \ 725 __PMC_EV(IAP, EVENT_DAH_01H) \ 726 __PMC_EV(IAP, EVENT_DAH_02H) \ 727 __PMC_EV(IAP, EVENT_DBH_00H) \ 728 __PMC_EV(IAP, EVENT_DCH_01H) \ 729 __PMC_EV(IAP, EVENT_DCH_02H) \ 730 __PMC_EV(IAP, EVENT_DCH_04H) \ 731 __PMC_EV(IAP, EVENT_DCH_08H) \ 732 __PMC_EV(IAP, EVENT_DCH_10H) \ 733 __PMC_EV(IAP, EVENT_DCH_1FH) \ 734 __PMC_EV(IAP, EVENT_E0H_00H) \ 735 __PMC_EV(IAP, EVENT_E0H_01H) \ 736 __PMC_EV(IAP, EVENT_E2H_00H) \ 737 __PMC_EV(IAP, EVENT_E4H_00H) \ 738 __PMC_EV(IAP, EVENT_E6H_00H) \ 739 __PMC_EV(IAP, EVENT_E6H_01H) \ 740 __PMC_EV(IAP, EVENT_F0H_00H) \ 741 __PMC_EV(IAP, EVENT_F8H_00H) 742 743 #define PMC_EV_IAP_FIRST PMC_EV_IAP_EVENT_02H_81H 744 #define PMC_EV_IAP_LAST PMC_EV_IAP_EVENT_F8H_00H 745 746 /* 747 * Map "architectural" event names to event ids. 748 */ 749 #define __PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \ 750 __PMC_EV_ALIAS("branch-instruction-retired", IAP_EVENT_C4H_00H) \ 751 __PMC_EV_ALIAS("branch-misses-retired", IAP_EVENT_C5H_00H) \ 752 __PMC_EV_ALIAS("instruction-retired", IAP_EVENT_C0H_00H) \ 753 __PMC_EV_ALIAS("llc-misses", IAP_EVENT_2EH_41H) \ 754 __PMC_EV_ALIAS("llc-reference", IAP_EVENT_2EH_4FH) \ 755 __PMC_EV_ALIAS("unhalted-reference-cycles", IAP_EVENT_3CH_01H) \ 756 __PMC_EV_ALIAS("unhalted-core-cycles", IAP_EVENT_3CH_00H) 757 758 /* 759 * Aliases for Atom PMCs. 760 */ 761 #define __PMC_EV_ALIAS_ATOM() \ 762 __PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \ 763 __PMC_EV_ALIAS("BACLEARS", IAP_EVENT_E6H_01H) \ 764 __PMC_EV_ALIAS("BOGUS_BR", IAP_EVENT_E4H_00H) \ 765 __PMC_EV_ALIAS("BR_BAC_MISSP_EXEC", IAP_EVENT_8AH_00H) \ 766 __PMC_EV_ALIAS("BR_CALL_EXEC", IAP_EVENT_92H_00H) \ 767 __PMC_EV_ALIAS("BR_CALL_MISSP_EXEC", IAP_EVENT_93H_00H) \ 768 __PMC_EV_ALIAS("BR_CND_EXEC", IAP_EVENT_8BH_00H) \ 769 __PMC_EV_ALIAS("BR_CND_MISSP_EXEC", IAP_EVENT_8CH_00H) \ 770 __PMC_EV_ALIAS("BR_IND_CALL_EXEC", IAP_EVENT_94H_00H) \ 771 __PMC_EV_ALIAS("BR_IND_EXEC", IAP_EVENT_8DH_00H) \ 772 __PMC_EV_ALIAS("BR_IND_MISSP_EXEC", IAP_EVENT_8EH_00H) \ 773 __PMC_EV_ALIAS("BR_INST_DECODED", IAP_EVENT_E0H_01H) \ 774 __PMC_EV_ALIAS("BR_INST_EXEC", IAP_EVENT_88H_00H) \ 775 __PMC_EV_ALIAS("BR_INST_RETIRED.ANY", IAP_EVENT_C4H_00H) \ 776 __PMC_EV_ALIAS("BR_INST_RETIRED.ANY1", IAP_EVENT_C4H_0FH) \ 777 __PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED", IAP_EVENT_C5H_00H) \ 778 __PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_NOT_TAKEN", \ 779 IAP_EVENT_C4H_02H) \ 780 __PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_TAKEN", IAP_EVENT_C4H_08H) \ 781 __PMC_EV_ALIAS("BR_INST_RETIRED.PRED_NOT_TAKEN",IAP_EVENT_C4H_01H) \ 782 __PMC_EV_ALIAS("BR_INST_RETIRED.PRED_TAKEN", IAP_EVENT_C4H_04H) \ 783 __PMC_EV_ALIAS("BR_INST_RETIRED.TAKEN", IAP_EVENT_C4H_0CH) \ 784 __PMC_EV_ALIAS("BR_MISSP_EXEC", IAP_EVENT_89H_00H) \ 785 __PMC_EV_ALIAS("BR_RET_BAC_MISSP_EXEC", IAP_EVENT_91H_00H) \ 786 __PMC_EV_ALIAS("BR_RET_EXEC", IAP_EVENT_8FH_00H) \ 787 __PMC_EV_ALIAS("BR_RET_MISSP_EXEC", IAP_EVENT_90H_00H) \ 788 __PMC_EV_ALIAS("BR_TKN_BUBBLE_1", IAP_EVENT_97H_00H) \ 789 __PMC_EV_ALIAS("BR_TKN_BUBBLE_2", IAP_EVENT_98H_00H) \ 790 __PMC_EV_ALIAS("BUSQ_EMPTY", IAP_EVENT_7DH) \ 791 __PMC_EV_ALIAS("BUS_BNR_DRV", IAP_EVENT_61H) \ 792 __PMC_EV_ALIAS("BUS_DATA_RCV", IAP_EVENT_64H) \ 793 __PMC_EV_ALIAS("BUS_DRDY_CLOCKS", IAP_EVENT_62H) \ 794 __PMC_EV_ALIAS("BUS_HITM_DRV", IAP_EVENT_7BH) \ 795 __PMC_EV_ALIAS("BUS_HIT_DRV", IAP_EVENT_7AH) \ 796 __PMC_EV_ALIAS("BUS_IO_WAIT", IAP_EVENT_7FH) \ 797 __PMC_EV_ALIAS("BUS_LOCK_CLOCKS", IAP_EVENT_63H) \ 798 __PMC_EV_ALIAS("BUS_REQUEST_OUTSTANDING", IAP_EVENT_60H) \ 799 __PMC_EV_ALIAS("BUS_TRANS_ANY", IAP_EVENT_70H) \ 800 __PMC_EV_ALIAS("BUS_TRANS_BRD", IAP_EVENT_65H) \ 801 __PMC_EV_ALIAS("BUS_TRANS_BURST", IAP_EVENT_6EH) \ 802 __PMC_EV_ALIAS("BUS_TRANS_DEF", IAP_EVENT_6DH) \ 803 __PMC_EV_ALIAS("BUS_TRANS_IFETCH", IAP_EVENT_68H) \ 804 __PMC_EV_ALIAS("BUS_TRANS_INVAL", IAP_EVENT_69H) \ 805 __PMC_EV_ALIAS("BUS_TRANS_IO", IAP_EVENT_6CH) \ 806 __PMC_EV_ALIAS("BUS_TRANS_MEM", IAP_EVENT_6FH) \ 807 __PMC_EV_ALIAS("BUS_TRANS_P", IAP_EVENT_6BH) \ 808 __PMC_EV_ALIAS("BUS_TRANS_PWR", IAP_EVENT_6AH) \ 809 __PMC_EV_ALIAS("BUS_TRANS_RFO", IAP_EVENT_66H) \ 810 __PMC_EV_ALIAS("BUS_TRANS_WB", IAP_EVENT_67H) \ 811 __PMC_EV_ALIAS("CMP_SNOOP", IAP_EVENT_78H) \ 812 __PMC_EV_ALIAS("CPU_CLK_UNHALTED.BUS", IAP_EVENT_3CH_01H) \ 813 __PMC_EV_ALIAS("CPU_CLK_UNHALTED.CORE_P", IAP_EVENT_3CH_00H) \ 814 __PMC_EV_ALIAS("CPU_CLK_UNHALTED.NO_OTHER", IAP_EVENT_3CH_02H) \ 815 __PMC_EV_ALIAS("CYCLES_DIV_BUSY", IAP_EVENT_14H_01H) \ 816 __PMC_EV_ALIAS("CYCLES_INT_MASKED.CYCLES_INT_MASKED", \ 817 IAP_EVENT_C6H_01H) \ 818 __PMC_EV_ALIAS("CYCLES_INT_MASKED.CYCLES_INT_PENDING_AND_MASKED", \ 819 IAP_EVENT_C6H_02H) \ 820 __PMC_EV_ALIAS("CYCLES_L1I_MEM_STALLED", IAP_EVENT_86H_00H) \ 821 __PMC_EV_ALIAS("DATA_TLB_MISSES.DTLB_MISS", IAP_EVENT_08H_07H) \ 822 __PMC_EV_ALIAS("DATA_TLB_MISSES.DTLB_MISS_LD", IAP_EVENT_08H_05H) \ 823 __PMC_EV_ALIAS("DATA_TLB_MISSES.DTLB_MISS_ST", IAP_EVENT_08H_06H) \ 824 __PMC_EV_ALIAS("DATA_TLB_MISSES.UTLB_MISS_LD", IAP_EVENT_08H_09H) \ 825 __PMC_EV_ALIAS("DELAYED_BYPASS.FP", IAP_EVENT_19H_00H) \ 826 __PMC_EV_ALIAS("DELAYED_BYPASS.LOAD", IAP_EVENT_19H_01H) \ 827 __PMC_EV_ALIAS("DELAYED_BYPASS.SIMD", IAP_EVENT_19H_02H) \ 828 __PMC_EV_ALIAS("DIV", IAP_EVENT_13H_00H) \ 829 __PMC_EV_ALIAS("DIV.AR", IAP_EVENT_13H_81H) \ 830 __PMC_EV_ALIAS("DIV.S", IAP_EVENT_13H_01H) \ 831 __PMC_EV_ALIAS("DTLB_MISSES.ANY", IAP_EVENT_08H_01H) \ 832 __PMC_EV_ALIAS("DTLB_MISSES.L0_MISS_LD", IAP_EVENT_08H_04H) \ 833 __PMC_EV_ALIAS("DTLB_MISSES.MISS_LD", IAP_EVENT_08H_02H) \ 834 __PMC_EV_ALIAS("DTLB_MISSES.MISS_ST", IAP_EVENT_08H_08H) \ 835 __PMC_EV_ALIAS("EIST_TRANS", IAP_EVENT_3AH_00H) \ 836 __PMC_EV_ALIAS("ESP.ADDITIONS", IAP_EVENT_ABH_02H) \ 837 __PMC_EV_ALIAS("ESP.SYNCH", IAP_EVENT_ABH_01H) \ 838 __PMC_EV_ALIAS("EXT_SNOOP", IAP_EVENT_77H) \ 839 __PMC_EV_ALIAS("FP_ASSIST", IAP_EVENT_11H_01H) \ 840 __PMC_EV_ALIAS("FP_ASSIST.AR", IAP_EVENT_11H_81H) \ 841 __PMC_EV_ALIAS("FP_COMP_OPS_EXE", IAP_EVENT_10H_00H) \ 842 __PMC_EV_ALIAS("FP_MMX_TRANS_TO_FP", IAP_EVENT_CCH_02H) \ 843 __PMC_EV_ALIAS("FP_MMX_TRANS_TO_MMX", IAP_EVENT_CCH_01H) \ 844 __PMC_EV_ALIAS("HW_INT_RCV", IAP_EVENT_C8H_00H) \ 845 __PMC_EV_ALIAS("ICACHE.ACCESSES", IAP_EVENT_80H_03H) \ 846 __PMC_EV_ALIAS("ICACHE.MISSES", IAP_EVENT_80H_02H) \ 847 __PMC_EV_ALIAS("IDLE_DURING_DIV", IAP_EVENT_18H_00H) \ 848 __PMC_EV_ALIAS("ILD_STALL", IAP_EVENT_87H_00H) \ 849 __PMC_EV_ALIAS("INST_QUEUE.FULL", IAP_EVENT_83H_02H) \ 850 __PMC_EV_ALIAS("INST_RETIRED.ANY_P", IAP_EVENT_C0H_00H) \ 851 __PMC_EV_ALIAS("INST_RETIRED.LOADS", IAP_EVENT_C0H_01H) \ 852 __PMC_EV_ALIAS("INST_RETIRED.OTHER", IAP_EVENT_C0H_04H) \ 853 __PMC_EV_ALIAS("INST_RETIRED.STORES", IAP_EVENT_C0H_02H) \ 854 __PMC_EV_ALIAS("ITLB.FLUSH", IAP_EVENT_82H_04H) \ 855 __PMC_EV_ALIAS("ITLB.LARGE_MISS", IAP_EVENT_82H_10H) \ 856 __PMC_EV_ALIAS("ITLB.MISSES", IAP_EVENT_82H_02H) \ 857 __PMC_EV_ALIAS("ITLB.SMALL_MISS", IAP_EVENT_82H_02H) \ 858 __PMC_EV_ALIAS("ITLB_MISS_RETIRED", IAP_EVENT_C9H_00H) \ 859 __PMC_EV_ALIAS("L1D_ALL_CACHE_REF", IAP_EVENT_43H_02H) \ 860 __PMC_EV_ALIAS("L1D_ALL_REF", IAP_EVENT_43H_01H) \ 861 __PMC_EV_ALIAS("L1D_CACHE.LD", IAP_EVENT_40H_21H) \ 862 __PMC_EV_ALIAS("L1D_CACHE.ST", IAP_EVENT_41H_22H) \ 863 __PMC_EV_ALIAS("L1D_CACHE_LOCK", IAP_EVENT_42H) \ 864 __PMC_EV_ALIAS("L1D_CACHE_LOCK_DURATION", IAP_EVENT_42H_10H) \ 865 __PMC_EV_ALIAS("L1D_M_EVICT", IAP_EVENT_47H_00H) \ 866 __PMC_EV_ALIAS("L1D_M_REPL", IAP_EVENT_46H_00H) \ 867 __PMC_EV_ALIAS("L1D_PEND_MISS", IAP_EVENT_48H_00H) \ 868 __PMC_EV_ALIAS("L1D_PREFETCH.REQUESTS", IAP_EVENT_4EH_10H) \ 869 __PMC_EV_ALIAS("L1D_REPL", IAP_EVENT_45H_0FH) \ 870 __PMC_EV_ALIAS("L1D_SPLIT.LOADS", IAP_EVENT_49H_01H) \ 871 __PMC_EV_ALIAS("L1D_SPLIT.STORES", IAP_EVENT_49H_02H) \ 872 __PMC_EV_ALIAS("L1I_MISSES", IAP_EVENT_81H_00H) \ 873 __PMC_EV_ALIAS("L1I_READS", IAP_EVENT_80H_00H) \ 874 __PMC_EV_ALIAS("L2_ADS", IAP_EVENT_21H) \ 875 __PMC_EV_ALIAS("L2_DBUS_BUSY_RD", IAP_EVENT_23H) \ 876 __PMC_EV_ALIAS("L2_IFETCH", IAP_EVENT_28H) \ 877 __PMC_EV_ALIAS("L2_LD", IAP_EVENT_29H) \ 878 __PMC_EV_ALIAS("L2_LINES_IN", IAP_EVENT_24H) \ 879 __PMC_EV_ALIAS("L2_LINES_OUT", IAP_EVENT_26H) \ 880 __PMC_EV_ALIAS("L2_LOCK", IAP_EVENT_2BH) \ 881 __PMC_EV_ALIAS("L2_M_LINES_IN", IAP_EVENT_25H) \ 882 __PMC_EV_ALIAS("L2_M_LINES_OUT", IAP_EVENT_27H) \ 883 __PMC_EV_ALIAS("L2_NO_REQ", IAP_EVENT_32H) \ 884 __PMC_EV_ALIAS("L2_REJECT_BUSQ", IAP_EVENT_30H) \ 885 __PMC_EV_ALIAS("L2_RQSTS", IAP_EVENT_2EH) \ 886 __PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.I_STATE", IAP_EVENT_2EH_41H) \ 887 __PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.MESI", IAP_EVENT_2EH_4FH) \ 888 __PMC_EV_ALIAS("L2_ST", IAP_EVENT_2AH) \ 889 __PMC_EV_ALIAS("LOAD_BLOCK.L1D", IAP_EVENT_03H_20H) \ 890 __PMC_EV_ALIAS("LOAD_BLOCK.OVERLAP_STORE", IAP_EVENT_03H_08H) \ 891 __PMC_EV_ALIAS("LOAD_BLOCK.STA", IAP_EVENT_03H_02H) \ 892 __PMC_EV_ALIAS("LOAD_BLOCK.STD", IAP_EVENT_03H_04H) \ 893 __PMC_EV_ALIAS("LOAD_BLOCK.UNTIL_RETIRE", IAP_EVENT_03H_10H) \ 894 __PMC_EV_ALIAS("LOAD_HIT_PRE", IAP_EVENT_4CH_00H) \ 895 __PMC_EV_ALIAS("MACHINE_CLEARS.SMC", IAP_EVENT_C3H_01H) \ 896 __PMC_EV_ALIAS("MACHINE_NUKES.MEM_ORDER", IAP_EVENT_C3H_04H) \ 897 __PMC_EV_ALIAS("MACRO_INSTS.ALL_DECODED", IAP_EVENT_AAH_03H) \ 898 __PMC_EV_ALIAS("MACRO_INSTS.CISC_DECODED", IAP_EVENT_AAH_02H) \ 899 __PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.RESET", IAP_EVENT_09H_01H) \ 900 __PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.SUCCESS", IAP_EVENT_09H_02H) \ 901 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.DTLB_MISS", IAP_EVENT_CBH_04H) \ 902 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_HIT", IAP_EVENT_CBH_01H) \ 903 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_LINE_MISS", IAP_EVENT_CBH_08H) \ 904 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_MISS", IAP_EVENT_CBH_02H) \ 905 __PMC_EV_ALIAS("MUL", IAP_EVENT_12H_00H) \ 906 __PMC_EV_ALIAS("MUL.AR", IAP_EVENT_12H_81H) \ 907 __PMC_EV_ALIAS("MUL.S", IAP_EVENT_12H_01H) \ 908 __PMC_EV_ALIAS("PAGE_WALKS.CYCLES", IAP_EVENT_0CH_03H) \ 909 __PMC_EV_ALIAS("PAGE_WALKS.WALKS", IAP_EVENT_0CH_03H) \ 910 __PMC_EV_ALIAS("PREFETCH.PREFETCHNTA", IAP_EVENT_07H_08H) \ 911 __PMC_EV_ALIAS("PREFETCH.PREFETCHT0", IAP_EVENT_07H_01H) \ 912 __PMC_EV_ALIAS("PREFETCH.SW_L2", IAP_EVENT_07H_06H) \ 913 __PMC_EV_ALIAS("PREF_RQSTS_DN", IAP_EVENT_F8H_00H) \ 914 __PMC_EV_ALIAS("PREF_RQSTS_UP", IAP_EVENT_F0H_00H) \ 915 __PMC_EV_ALIAS("RAT_STALLS.ANY", IAP_EVENT_D2H_0FH) \ 916 __PMC_EV_ALIAS("RAT_STALLS.FLAGS", IAP_EVENT_D2H_04H) \ 917 __PMC_EV_ALIAS("RAT_STALLS.FPSW", IAP_EVENT_D2H_08H) \ 918 __PMC_EV_ALIAS("RAT_STALLS.PARTIAL_CYCLES", IAP_EVENT_D2H_02H) \ 919 __PMC_EV_ALIAS("RAT_STALLS.ROB_READ_PORT", IAP_EVENT_D2H_01H) \ 920 __PMC_EV_ALIAS("RESOURCE_STALLS.ANY", IAP_EVENT_DCH_1FH) \ 921 __PMC_EV_ALIAS("RESOURCE_STALLS.BR_MISS_CLEAR", IAP_EVENT_DCH_10H) \ 922 __PMC_EV_ALIAS("RESOURCE_STALLS.FPCW", IAP_EVENT_DCH_08H) \ 923 __PMC_EV_ALIAS("RESOURCE_STALLS.LD_ST", IAP_EVENT_DCH_04H) \ 924 __PMC_EV_ALIAS("RESOURCE_STALLS.ROB_FULL", IAP_EVENT_DCH_01H) \ 925 __PMC_EV_ALIAS("RESOURCE_STALLS.RS_FULL", IAP_EVENT_DCH_02H) \ 926 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED", IAP_EVENT_A0H_00H) \ 927 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT0", IAP_EVENT_A1H_01H) \ 928 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT1", IAP_EVENT_A1H_02H) \ 929 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT2", IAP_EVENT_A1H_04H) \ 930 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT3", IAP_EVENT_A1H_08H) \ 931 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT4", IAP_EVENT_A1H_10H) \ 932 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT5", IAP_EVENT_A1H_20H) \ 933 __PMC_EV_ALIAS("SB_DRAIN_CYCLES", IAP_EVENT_04H_01H) \ 934 __PMC_EV_ALIAS("SEGMENT_REG_LOADS.ANY", IAP_EVENT_06H_00H) \ 935 __PMC_EV_ALIAS("SEG_REG_RENAMES.ANY", IAP_EVENT_D5H_0FH) \ 936 __PMC_EV_ALIAS("SEG_REG_RENAMES.DS", IAP_EVENT_D5H_02H) \ 937 __PMC_EV_ALIAS("SEG_REG_RENAMES.ES", IAP_EVENT_D5H_01H) \ 938 __PMC_EV_ALIAS("SEG_REG_RENAMES.FS", IAP_EVENT_D5H_04H) \ 939 __PMC_EV_ALIAS("SEG_REG_RENAMES.GS", IAP_EVENT_D5H_08H) \ 940 __PMC_EV_ALIAS("SEG_RENAME_STALLS.ANY", IAP_EVENT_D4H_0FH) \ 941 __PMC_EV_ALIAS("SEG_RENAME_STALLS.DS", IAP_EVENT_D4H_02H) \ 942 __PMC_EV_ALIAS("SEG_RENAME_STALLS.ES", IAP_EVENT_D4H_01H) \ 943 __PMC_EV_ALIAS("SEG_RENAME_STALLS.FS", IAP_EVENT_D4H_04H) \ 944 __PMC_EV_ALIAS("SEG_RENAME_STALLS.GS", IAP_EVENT_D4H_08H) \ 945 __PMC_EV_ALIAS("SIMD_ASSIST", IAP_EVENT_CDH_00H) \ 946 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_DOUBLE", \ 947 IAP_EVENT_CAH_04H) \ 948 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_SINGLE", \ 949 IAP_EVENT_CAH_01H) \ 950 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_DOUBLE", \ 951 IAP_EVENT_CAH_08H) \ 952 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_SINGLE", \ 953 IAP_EVENT_CAH_02H) \ 954 __PMC_EV_ALIAS("SIMD_INSTR_RETIRED", IAP_EVENT_CEH_00H) \ 955 __PMC_EV_ALIAS("SIMD_INST_RETIRED.ANY", IAP_EVENT_C7H_1FH) \ 956 __PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_DOUBLE", IAP_EVENT_C7H_04H) \ 957 __PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_SINGLE", IAP_EVENT_C7H_01H) \ 958 __PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_DOUBLE", IAP_EVENT_C7H_08H) \ 959 __PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_SINGLE", IAP_EVENT_C7H_02H) \ 960 __PMC_EV_ALIAS("SIMD_INST_RETIRED.VECTOR", IAP_EVENT_C7H_10H) \ 961 __PMC_EV_ALIAS("SIMD_SAT_INSTR_RETIRED", IAP_EVENT_CFH_00H) \ 962 __PMC_EV_ALIAS("SIMD_SAT_UOP_EXEC.AR", IAP_EVENT_B1H_80H) \ 963 __PMC_EV_ALIAS("SIMD_SAT_UOP_EXEC.S", IAP_EVENT_B1H_00H) \ 964 __PMC_EV_ALIAS("SIMD_UOPS_EXEC.AR", IAP_EVENT_B0H_80H) \ 965 __PMC_EV_ALIAS("SIMD_UOPS_EXEC.S", IAP_EVENT_B0H_00H) \ 966 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.ARITHMETIC.AR", IAP_EVENT_B3H_A0H) \ 967 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.ARITHMETIC.S", IAP_EVENT_B3H_20H) \ 968 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.LOGICAL.AR", IAP_EVENT_B3H_90H) \ 969 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.LOGICAL.S", IAP_EVENT_B3H_10H) \ 970 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.MUL.AR", IAP_EVENT_B3H_81H) \ 971 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.MUL.S", IAP_EVENT_B3H_01H) \ 972 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.PACK.AR", IAP_EVENT_B3H_84H) \ 973 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.PACK.S", IAP_EVENT_B3H_04H) \ 974 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.SHIFT.AR", IAP_EVENT_B3H_82H) \ 975 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.SHIFT.S", IAP_EVENT_B3H_02H) \ 976 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.UNPACK.AR", IAP_EVENT_B3H_88H) \ 977 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.UNPACK.S", IAP_EVENT_B3H_08H) \ 978 __PMC_EV_ALIAS("SNOOP_STALL_DRV", IAP_EVENT_7EH) \ 979 __PMC_EV_ALIAS("SSE_PRE_EXEC.L2", IAP_EVENT_07H_02H) \ 980 __PMC_EV_ALIAS("SSE_PRE_EXEC.STORES", IAP_EVENT_07H_03H) \ 981 __PMC_EV_ALIAS("SSE_PRE_MISS.L1", IAP_EVENT_4BH_01H) \ 982 __PMC_EV_ALIAS("SSE_PRE_MISS.L2", IAP_EVENT_4BH_02H) \ 983 __PMC_EV_ALIAS("SSE_PRE_MISS.NTA", IAP_EVENT_4BH_00H) \ 984 __PMC_EV_ALIAS("STORE_BLOCK.ORDER", IAP_EVENT_04H_02H) \ 985 __PMC_EV_ALIAS("STORE_BLOCK.SNOOP", IAP_EVENT_04H_08H) \ 986 __PMC_EV_ALIAS("STORE_FORWARDS.GOOD", IAP_EVENT_02H_81H) \ 987 __PMC_EV_ALIAS("THERMAL_TRIP", IAP_EVENT_3BH_C0H) \ 988 __PMC_EV_ALIAS("UOPS_RETIRED.ANY", IAP_EVENT_C2H_10H) \ 989 __PMC_EV_ALIAS("UOPS_RETIRED.FUSED", IAP_EVENT_C2H_07H) \ 990 __PMC_EV_ALIAS("UOPS_RETIRED.LD_IND_BR", IAP_EVENT_C2H_01H) \ 991 __PMC_EV_ALIAS("UOPS_RETIRED.MACRO_FUSION", IAP_EVENT_C2H_04H) \ 992 __PMC_EV_ALIAS("UOPS_RETIRED.NON_FUSED", IAP_EVENT_C2H_08H) \ 993 __PMC_EV_ALIAS("UOPS_RETIRED.STD_STA", IAP_EVENT_C2H_02H) \ 994 __PMC_EV_ALIAS("X87_COMP_OPS_EXE.ANY.AR", IAP_EVENT_10H_81H) \ 995 __PMC_EV_ALIAS("X87_COMP_OPS_EXE.ANY.S", IAP_EVENT_10H_01H) \ 996 __PMC_EV_ALIAS("X87_OPS_RETIRED.ANY", IAP_EVENT_C1H_FEH) \ 997 __PMC_EV_ALIAS("X87_OPS_RETIRED.FXCH", IAP_EVENT_C1H_01H) 998 999 /* 1000 * Aliases for Core PMC events. 1001 */ 1002 #define __PMC_EV_ALIAS_CORE() \ 1003 __PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \ 1004 __PMC_EV_ALIAS("BAClears", IAP_EVENT_E6H_00H) \ 1005 __PMC_EV_ALIAS("BTB_Misses", IAP_EVENT_E2H_00H) \ 1006 __PMC_EV_ALIAS("Br_BAC_Missp_Exec", IAP_EVENT_8AH_00H) \ 1007 __PMC_EV_ALIAS("Br_Bogus", IAP_EVENT_E4H_00H) \ 1008 __PMC_EV_ALIAS("Br_Call_Exec", IAP_EVENT_92H_00H) \ 1009 __PMC_EV_ALIAS("Br_Call_Missp_Exec", IAP_EVENT_93H_00H) \ 1010 __PMC_EV_ALIAS("Br_Cnd_Exec", IAP_EVENT_8BH_00H) \ 1011 __PMC_EV_ALIAS("Br_Cnd_Missp_Exec", IAP_EVENT_8CH_00H) \ 1012 __PMC_EV_ALIAS("Br_Ind_Call_Exec", IAP_EVENT_94H_00H) \ 1013 __PMC_EV_ALIAS("Br_Ind_Exec", IAP_EVENT_8DH_00H) \ 1014 __PMC_EV_ALIAS("Br_Ind_Missp_Exec", IAP_EVENT_8EH_00H) \ 1015 __PMC_EV_ALIAS("Br_Inst_Exec", IAP_EVENT_88H_00H) \ 1016 __PMC_EV_ALIAS("Br_Instr_Decoded", IAP_EVENT_E0H_00H) \ 1017 __PMC_EV_ALIAS("Br_Instr_Ret", IAP_EVENT_C4H_00H) \ 1018 __PMC_EV_ALIAS("Br_MisPred_Ret", IAP_EVENT_C5H_00H) \ 1019 __PMC_EV_ALIAS("Br_MisPred_Taken_Ret", IAP_EVENT_CAH_00H) \ 1020 __PMC_EV_ALIAS("Br_Missp_Exec", IAP_EVENT_89H_00H) \ 1021 __PMC_EV_ALIAS("Br_Ret_BAC_Missp_Exec", IAP_EVENT_91H_00H) \ 1022 __PMC_EV_ALIAS("Br_Ret_Exec", IAP_EVENT_8FH_00H) \ 1023 __PMC_EV_ALIAS("Br_Ret_Missp_Exec", IAP_EVENT_90H_00H) \ 1024 __PMC_EV_ALIAS("Br_Taken_Ret", IAP_EVENT_C9H_00H) \ 1025 __PMC_EV_ALIAS("Bus_BNR_Clocks", IAP_EVENT_61H_00H) \ 1026 __PMC_EV_ALIAS("Bus_DRDY_Clocks", IAP_EVENT_62H_00H) \ 1027 __PMC_EV_ALIAS("Bus_Data_Rcv", IAP_EVENT_64H_40H) \ 1028 __PMC_EV_ALIAS("Bus_Locks_Clocks", IAP_EVENT_63H) \ 1029 __PMC_EV_ALIAS("Bus_Not_In_Use", IAP_EVENT_7DH) \ 1030 __PMC_EV_ALIAS("Bus_Req_Outstanding", IAP_EVENT_60H) \ 1031 __PMC_EV_ALIAS("Bus_Snoop_Stall", IAP_EVENT_7EH_00H) \ 1032 __PMC_EV_ALIAS("Bus_Snoops", IAP_EVENT_77H) \ 1033 __PMC_EV_ALIAS("Bus_Trans_Any", IAP_EVENT_70H) \ 1034 __PMC_EV_ALIAS("Bus_Trans_Brd", IAP_EVENT_65H) \ 1035 __PMC_EV_ALIAS("Bus_Trans_Burst", IAP_EVENT_6EH) \ 1036 __PMC_EV_ALIAS("Bus_Trans_Def", IAP_EVENT_6DH) \ 1037 __PMC_EV_ALIAS("Bus_Trans_IO", IAP_EVENT_6CH) \ 1038 __PMC_EV_ALIAS("Bus_Trans_Ifetch", IAP_EVENT_68H) \ 1039 __PMC_EV_ALIAS("Bus_Trans_Inval", IAP_EVENT_69H) \ 1040 __PMC_EV_ALIAS("Bus_Trans_Mem", IAP_EVENT_6FH) \ 1041 __PMC_EV_ALIAS("Bus_Trans_P", IAP_EVENT_6BH) \ 1042 __PMC_EV_ALIAS("Bus_Trans_Pwr", IAP_EVENT_6AH) \ 1043 __PMC_EV_ALIAS("Bus_Trans_RFO", IAP_EVENT_66H) \ 1044 __PMC_EV_ALIAS("Bus_Trans_WB", IAP_EVENT_67H) \ 1045 __PMC_EV_ALIAS("Cycles_Div_Busy", IAP_EVENT_14H_00H) \ 1046 __PMC_EV_ALIAS("Cycles_Int_Masked", IAP_EVENT_C6H_00H) \ 1047 __PMC_EV_ALIAS("Cycles_Int_Pending_Masked", IAP_EVENT_C7H_00H) \ 1048 __PMC_EV_ALIAS("DCU_Snoop_To_Share", IAP_EVENT_78H) \ 1049 __PMC_EV_ALIAS("DCache_Cache_LD", IAP_EVENT_40H) \ 1050 __PMC_EV_ALIAS("DCache_Cache_Lock", IAP_EVENT_42H) \ 1051 __PMC_EV_ALIAS("DCache_Cache_ST", IAP_EVENT_41H) \ 1052 __PMC_EV_ALIAS("DCache_M_Evict", IAP_EVENT_47H_00H) \ 1053 __PMC_EV_ALIAS("DCache_M_Repl", IAP_EVENT_46H_00H) \ 1054 __PMC_EV_ALIAS("DCache_Pend_Miss", IAP_EVENT_48H_00H) \ 1055 __PMC_EV_ALIAS("DCache_Repl", IAP_EVENT_45H_0FH) \ 1056 __PMC_EV_ALIAS("Data_Mem_Cache_Ref", IAP_EVENT_44H_02H) \ 1057 __PMC_EV_ALIAS("Data_Mem_Ref", IAP_EVENT_43H_01H) \ 1058 __PMC_EV_ALIAS("Dbus_Busy", IAP_EVENT_22H) \ 1059 __PMC_EV_ALIAS("Dbus_Busy_Rd", IAP_EVENT_23H) \ 1060 __PMC_EV_ALIAS("Div", IAP_EVENT_13H_00H) \ 1061 __PMC_EV_ALIAS("Dtlb_Miss", IAP_EVENT_49H_00H) \ 1062 __PMC_EV_ALIAS("ESP_Uops", IAP_EVENT_D7H_00H) \ 1063 __PMC_EV_ALIAS("EST_Trans", IAP_EVENT_3AH) \ 1064 __PMC_EV_ALIAS("FP_Assist", IAP_EVENT_11H_00H) \ 1065 __PMC_EV_ALIAS("FP_Comp_Instr_Ret", IAP_EVENT_C1H_00H) \ 1066 __PMC_EV_ALIAS("FP_Comps_Op_Exe", IAP_EVENT_10H_00H) \ 1067 __PMC_EV_ALIAS("FP_MMX_Trans", IAP_EVENT_CCH_01H) \ 1068 __PMC_EV_ALIAS("Fused_Ld_Uops_Ret", IAP_EVENT_DAH_01H) \ 1069 __PMC_EV_ALIAS("Fused_St_Uops_Ret", IAP_EVENT_DAH_02H) \ 1070 __PMC_EV_ALIAS("Fused_Uops_Ret", IAP_EVENT_DAH_00H) \ 1071 __PMC_EV_ALIAS("HW_Int_Rx", IAP_EVENT_C8H_00H) \ 1072 __PMC_EV_ALIAS("ICache_Misses", IAP_EVENT_81H_00H) \ 1073 __PMC_EV_ALIAS("ICache_Reads", IAP_EVENT_80H_00H) \ 1074 __PMC_EV_ALIAS("IFU_Mem_Stall", IAP_EVENT_86H_00H) \ 1075 __PMC_EV_ALIAS("ILD_Stall", IAP_EVENT_87H_00H) \ 1076 __PMC_EV_ALIAS("ITLB_Misses", IAP_EVENT_85H_00H) \ 1077 __PMC_EV_ALIAS("Instr_Decoded", IAP_EVENT_D0H_00H) \ 1078 __PMC_EV_ALIAS("Instr_Ret", IAP_EVENT_C0H_00H) \ 1079 __PMC_EV_ALIAS("L1_Pref_Req", IAP_EVENT_4FH_00H) \ 1080 __PMC_EV_ALIAS("L2_ADS", IAP_EVENT_21H) \ 1081 __PMC_EV_ALIAS("L2_IFetch", IAP_EVENT_28H) \ 1082 __PMC_EV_ALIAS("L2_LD", IAP_EVENT_29H) \ 1083 __PMC_EV_ALIAS("L2_Lines_In", IAP_EVENT_24H) \ 1084 __PMC_EV_ALIAS("L2_Lines_Out", IAP_EVENT_26H) \ 1085 __PMC_EV_ALIAS("L2_M_Lines_In", IAP_EVENT_25H) \ 1086 __PMC_EV_ALIAS("L2_M_Lines_Out", IAP_EVENT_27H) \ 1087 __PMC_EV_ALIAS("L2_No_Request_Cycles", IAP_EVENT_32H) \ 1088 __PMC_EV_ALIAS("L2_Reject_Cycles", IAP_EVENT_30H) \ 1089 __PMC_EV_ALIAS("L2_Rqsts", IAP_EVENT_2EH) \ 1090 __PMC_EV_ALIAS("L2_ST", IAP_EVENT_2AH) \ 1091 __PMC_EV_ALIAS("LD_Blocks", IAP_EVENT_03H_00H) \ 1092 __PMC_EV_ALIAS("LLC_Misses", IAP_EVENT_2EH_41H) \ 1093 __PMC_EV_ALIAS("LLC_Reference", IAP_EVENT_2EH_4FH) \ 1094 __PMC_EV_ALIAS("MMX_Assist", IAP_EVENT_CDH_00H) \ 1095 __PMC_EV_ALIAS("MMX_FP_Trans", IAP_EVENT_CCH_00H) \ 1096 __PMC_EV_ALIAS("MMX_Instr_Exec", IAP_EVENT_B0H_00H) \ 1097 __PMC_EV_ALIAS("MMX_Instr_Ret", IAP_EVENT_CEH_00H) \ 1098 __PMC_EV_ALIAS("Misalign_Mem_Ref", IAP_EVENT_05H_00H) \ 1099 __PMC_EV_ALIAS("Mul", IAP_EVENT_12H_00H) \ 1100 __PMC_EV_ALIAS("NonHlt_Ref_Cycles", IAP_EVENT_3CH_01H) \ 1101 __PMC_EV_ALIAS("Pref_Rqsts_Dn", IAP_EVENT_F8H_00H) \ 1102 __PMC_EV_ALIAS("Pref_Rqsts_Up", IAP_EVENT_F0H_00H) \ 1103 __PMC_EV_ALIAS("Resource_Stall", IAP_EVENT_A2H_00H) \ 1104 __PMC_EV_ALIAS("SD_Drains", IAP_EVENT_04H_00H) \ 1105 __PMC_EV_ALIAS("SIMD_FP_DP_P_Comp_Ret", IAP_EVENT_D9H_02H) \ 1106 __PMC_EV_ALIAS("SIMD_FP_DP_P_Ret", IAP_EVENT_D8H_02H) \ 1107 __PMC_EV_ALIAS("SIMD_FP_DP_S_Comp_Ret", IAP_EVENT_D9H_03H) \ 1108 __PMC_EV_ALIAS("SIMD_FP_DP_S_Ret", IAP_EVENT_D8H_03H) \ 1109 __PMC_EV_ALIAS("SIMD_FP_SP_P_Comp_Ret", IAP_EVENT_D9H_00H) \ 1110 __PMC_EV_ALIAS("SIMD_FP_SP_Ret", IAP_EVENT_D8H_00H) \ 1111 __PMC_EV_ALIAS("SIMD_FP_SP_S_Comp_Ret", IAP_EVENT_D9H_01H) \ 1112 __PMC_EV_ALIAS("SIMD_FP_SP_S_Ret", IAP_EVENT_D8H_01H) \ 1113 __PMC_EV_ALIAS("SIMD_Int_128_Ret", IAP_EVENT_D8H_04H) \ 1114 __PMC_EV_ALIAS("SIMD_Int_Pari_Exec", IAP_EVENT_B3H_20H) \ 1115 __PMC_EV_ALIAS("SIMD_Int_Pck_Exec", IAP_EVENT_B3H_04H) \ 1116 __PMC_EV_ALIAS("SIMD_Int_Plog_Exec", IAP_EVENT_B3H_10H) \ 1117 __PMC_EV_ALIAS("SIMD_Int_Pmul_Exec", IAP_EVENT_B3H_01H) \ 1118 __PMC_EV_ALIAS("SIMD_Int_Psft_Exec", IAP_EVENT_B3H_02H) \ 1119 __PMC_EV_ALIAS("SIMD_Int_Sat_Exec", IAP_EVENT_B1H_00H) \ 1120 __PMC_EV_ALIAS("SIMD_Int_Upck_Exec", IAP_EVENT_B3H_08H) \ 1121 __PMC_EV_ALIAS("SMC_Detected", IAP_EVENT_C3H_00H) \ 1122 __PMC_EV_ALIAS("SSE_NTStores_Miss", IAP_EVENT_4BH_03H) \ 1123 __PMC_EV_ALIAS("SSE_NTStores_Ret", IAP_EVENT_07H_03H) \ 1124 __PMC_EV_ALIAS("SSE_PrefNta_Miss", IAP_EVENT_4BH_00H) \ 1125 __PMC_EV_ALIAS("SSE_PrefNta_Ret", IAP_EVENT_07H_00H) \ 1126 __PMC_EV_ALIAS("SSE_PrefT1_Miss", IAP_EVENT_4BH_01H) \ 1127 __PMC_EV_ALIAS("SSE_PrefT1_Ret", IAP_EVENT_07H_01H) \ 1128 __PMC_EV_ALIAS("SSE_PrefT2_Miss", IAP_EVENT_4BH_02H) \ 1129 __PMC_EV_ALIAS("SSE_PrefT2_Ret", IAP_EVENT_07H_02H) \ 1130 __PMC_EV_ALIAS("Seg_Reg_Loads", IAP_EVENT_06H_00H) \ 1131 __PMC_EV_ALIAS("Serial_Execution_Cycles", IAP_EVENT_3CH_02H) \ 1132 __PMC_EV_ALIAS("Thermal_Trip", IAP_EVENT_3BH_C0H) \ 1133 __PMC_EV_ALIAS("Unfusion", IAP_EVENT_DBH_00H) \ 1134 __PMC_EV_ALIAS("Unhalted_Core_Cycles", IAP_EVENT_3CH_00H) \ 1135 __PMC_EV_ALIAS("Uops_Ret", IAP_EVENT_C2H_00H) 1136 1137 /* 1138 * Aliases for Core2 PMC events. 1139 */ 1140 #define __PMC_EV_ALIAS_CORE2() \ 1141 __PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \ 1142 __PMC_EV_ALIAS("BACLEARS", IAP_EVENT_E6H_00H) \ 1143 __PMC_EV_ALIAS("BOGUS_BR", IAP_EVENT_E4H_00H) \ 1144 __PMC_EV_ALIAS("BR_BAC_MISSP_EXEC", IAP_EVENT_8AH_00H) \ 1145 __PMC_EV_ALIAS("BR_CALL_EXEC", IAP_EVENT_92H_00H) \ 1146 __PMC_EV_ALIAS("BR_CALL_MISSP_EXEC", IAP_EVENT_93H_00H) \ 1147 __PMC_EV_ALIAS("BR_CND_EXEC", IAP_EVENT_8BH_00H) \ 1148 __PMC_EV_ALIAS("BR_CND_MISSP_EXEC", IAP_EVENT_8CH_00H) \ 1149 __PMC_EV_ALIAS("BR_IND_CALL_EXEC", IAP_EVENT_94H_00H) \ 1150 __PMC_EV_ALIAS("BR_IND_EXEC", IAP_EVENT_8DH_00H) \ 1151 __PMC_EV_ALIAS("BR_IND_MISSP_EXEC", IAP_EVENT_8EH_00H) \ 1152 __PMC_EV_ALIAS("BR_INST_DECODED", IAP_EVENT_E0H_00H) \ 1153 __PMC_EV_ALIAS("BR_INST_EXEC", IAP_EVENT_88H_00H) \ 1154 __PMC_EV_ALIAS("BR_INST_RETIRED.ANY", IAP_EVENT_C4H_00H) \ 1155 __PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED", IAP_EVENT_C5H_00H) \ 1156 __PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_NOT_TAKEN", \ 1157 IAP_EVENT_C4H_02H) \ 1158 __PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_TAKEN", \ 1159 IAP_EVENT_C4H_08H) \ 1160 __PMC_EV_ALIAS("BR_INST_RETIRED.PRED_NOT_TAKEN", \ 1161 IAP_EVENT_C4H_01H) \ 1162 __PMC_EV_ALIAS("BR_INST_RETIRED.PRED_TAKEN", \ 1163 IAP_EVENT_C4H_04H) \ 1164 __PMC_EV_ALIAS("BR_INST_RETIRED.TAKEN", IAP_EVENT_C4H_0CH) \ 1165 __PMC_EV_ALIAS("BR_MISSP_EXEC", IAP_EVENT_89H_00H) \ 1166 __PMC_EV_ALIAS("BR_RET_BAC_MISSP_EXEC", IAP_EVENT_91H_00H) \ 1167 __PMC_EV_ALIAS("BR_RET_EXEC", IAP_EVENT_8FH_00H) \ 1168 __PMC_EV_ALIAS("BR_RET_MISSP_EXEC", IAP_EVENT_90H_00H) \ 1169 __PMC_EV_ALIAS("BR_TKN_BUBBLE_1", IAP_EVENT_97H_00H) \ 1170 __PMC_EV_ALIAS("BR_TKN_BUBBLE_2", IAP_EVENT_98H_00H) \ 1171 __PMC_EV_ALIAS("BUSQ_EMPTY", IAP_EVENT_7DH) \ 1172 __PMC_EV_ALIAS("BUS_BNR_DRV", IAP_EVENT_61H) \ 1173 __PMC_EV_ALIAS("BUS_DATA_RCV", IAP_EVENT_64H) \ 1174 __PMC_EV_ALIAS("BUS_DRDY_CLOCKS", IAP_EVENT_62H) \ 1175 __PMC_EV_ALIAS("BUS_HITM_DRV", IAP_EVENT_7BH) \ 1176 __PMC_EV_ALIAS("BUS_HIT_DRV", IAP_EVENT_7AH) \ 1177 __PMC_EV_ALIAS("BUS_IO_WAIT", IAP_EVENT_7FH) \ 1178 __PMC_EV_ALIAS("BUS_LOCK_CLOCKS", IAP_EVENT_63H) \ 1179 __PMC_EV_ALIAS("BUS_REQUEST_OUTSTANDING", \ 1180 IAP_EVENT_60H) \ 1181 __PMC_EV_ALIAS("BUS_TRANS_ANY", IAP_EVENT_70H) \ 1182 __PMC_EV_ALIAS("BUS_TRANS_BRD", IAP_EVENT_65H) \ 1183 __PMC_EV_ALIAS("BUS_TRANS_BURST", IAP_EVENT_6EH) \ 1184 __PMC_EV_ALIAS("BUS_TRANS_DEF", IAP_EVENT_6DH) \ 1185 __PMC_EV_ALIAS("BUS_TRANS_IFETCH", IAP_EVENT_68H) \ 1186 __PMC_EV_ALIAS("BUS_TRANS_INVAL", IAP_EVENT_69H) \ 1187 __PMC_EV_ALIAS("BUS_TRANS_IO", IAP_EVENT_6CH) \ 1188 __PMC_EV_ALIAS("BUS_TRANS_MEM", IAP_EVENT_6FH) \ 1189 __PMC_EV_ALIAS("BUS_TRANS_P", IAP_EVENT_6BH) \ 1190 __PMC_EV_ALIAS("BUS_TRANS_PWR", IAP_EVENT_6AH) \ 1191 __PMC_EV_ALIAS("BUS_TRANS_RFO", IAP_EVENT_66H) \ 1192 __PMC_EV_ALIAS("BUS_TRANS_WB", IAP_EVENT_67H) \ 1193 __PMC_EV_ALIAS("CMP_SNOOP", IAP_EVENT_78H) \ 1194 __PMC_EV_ALIAS("CPU_CLK_UNHALTED.BUS", IAP_EVENT_3CH_01H) \ 1195 __PMC_EV_ALIAS("CPU_CLK_UNHALTED.CORE_P", \ 1196 IAP_EVENT_3CH_00H) \ 1197 __PMC_EV_ALIAS("CPU_CLK_UNHALTED.NO_OTHER", \ 1198 IAP_EVENT_3CH_02H) \ 1199 __PMC_EV_ALIAS("CYCLES_DIV_BUSY", IAP_EVENT_14H_00H) \ 1200 __PMC_EV_ALIAS("CYCLES_INT_MASKED", IAP_EVENT_C6H_01H) \ 1201 __PMC_EV_ALIAS("CYCLES_INT_PENDING_AND_MASKED", \ 1202 IAP_EVENT_C6H_02H) \ 1203 __PMC_EV_ALIAS("CYCLES_L1I_MEM_STALLED", IAP_EVENT_86H_00H) \ 1204 __PMC_EV_ALIAS("DELAYED_BYPASS.FP", IAP_EVENT_19H_00H) \ 1205 __PMC_EV_ALIAS("DELAYED_BYPASS.LOAD", IAP_EVENT_19H_01H) \ 1206 __PMC_EV_ALIAS("DELAYED_BYPASS.SIMD", IAP_EVENT_19H_02H) \ 1207 __PMC_EV_ALIAS("DIV", IAP_EVENT_13H_00H) \ 1208 __PMC_EV_ALIAS("DTLB_MISSES.ANY", IAP_EVENT_08H_01H) \ 1209 __PMC_EV_ALIAS("DTLB_MISSES.L0_MISS_LD", IAP_EVENT_08H_04H) \ 1210 __PMC_EV_ALIAS("DTLB_MISSES.MISS_LD", IAP_EVENT_08H_02H) \ 1211 __PMC_EV_ALIAS("DTLB_MISSES.MISS_ST", IAP_EVENT_08H_08H) \ 1212 __PMC_EV_ALIAS("EIST_TRANS", IAP_EVENT_3AH_00H) \ 1213 __PMC_EV_ALIAS("ESP.ADDITIONS", IAP_EVENT_ABH_02H) \ 1214 __PMC_EV_ALIAS("ESP.SYNCH", IAP_EVENT_ABH_01H) \ 1215 __PMC_EV_ALIAS("EXT_SNOOP", IAP_EVENT_77H) \ 1216 __PMC_EV_ALIAS("FP_ASSIST", IAP_EVENT_11H_00H) \ 1217 __PMC_EV_ALIAS("FP_COMP_OPS_EXE", IAP_EVENT_10H_00H) \ 1218 __PMC_EV_ALIAS("FP_MMX_TRANS_TO_FP", IAP_EVENT_CCH_02H) \ 1219 __PMC_EV_ALIAS("FP_MMX_TRANS_TO_MMX", IAP_EVENT_CCH_01H) \ 1220 __PMC_EV_ALIAS("HW_INT_RCV", IAP_EVENT_C8H_00H) \ 1221 __PMC_EV_ALIAS("IDLE_DURING_DIV", IAP_EVENT_18H_00H) \ 1222 __PMC_EV_ALIAS("ILD_STALL", IAP_EVENT_87H_00H) \ 1223 __PMC_EV_ALIAS("INST_QUEUE.FULL", IAP_EVENT_83H_02H) \ 1224 __PMC_EV_ALIAS("INST_RETIRED.ANY_P", IAP_EVENT_C0H_00H) \ 1225 __PMC_EV_ALIAS("INST_RETIRED.LOADS", IAP_EVENT_C0H_01H) \ 1226 __PMC_EV_ALIAS("INST_RETIRED.OTHER", IAP_EVENT_C0H_04H) \ 1227 __PMC_EV_ALIAS("INST_RETIRED.STORES", IAP_EVENT_C0H_02H) \ 1228 __PMC_EV_ALIAS("INST_RETIRED.VM_H", IAP_EVENT_C0H_08H) \ 1229 __PMC_EV_ALIAS("ITLB.FLUSH", IAP_EVENT_82H_40H) \ 1230 __PMC_EV_ALIAS("ITLB.LARGE_MISS", IAP_EVENT_82H_10H) \ 1231 __PMC_EV_ALIAS("ITLB.MISSES", IAP_EVENT_82H_12H) \ 1232 __PMC_EV_ALIAS("ITLB.SMALL_MISS", IAP_EVENT_82H_02H) \ 1233 __PMC_EV_ALIAS("ITLB_MISS_RETIRED", IAP_EVENT_C9H_00H) \ 1234 __PMC_EV_ALIAS("L1D_ALL_CACHE_REF", IAP_EVENT_43H_02H) \ 1235 __PMC_EV_ALIAS("L1D_ALL_REF", IAP_EVENT_43H_01H) \ 1236 __PMC_EV_ALIAS("L1D_CACHE_LD", IAP_EVENT_40H) \ 1237 __PMC_EV_ALIAS("L1D_CACHE_LOCK", IAP_EVENT_42H) \ 1238 __PMC_EV_ALIAS("L1D_CACHE_LOCK_DURATION", IAP_EVENT_42H_10H) \ 1239 __PMC_EV_ALIAS("L1D_CACHE_ST", IAP_EVENT_41H) \ 1240 __PMC_EV_ALIAS("L1D_M_EVICT", IAP_EVENT_47H_00H) \ 1241 __PMC_EV_ALIAS("L1D_M_REPL", IAP_EVENT_46H_00H) \ 1242 __PMC_EV_ALIAS("L1D_PEND_MISS", IAP_EVENT_48H_00H) \ 1243 __PMC_EV_ALIAS("L1D_PREFETCH.REQUESTS", IAP_EVENT_4EH_10H) \ 1244 __PMC_EV_ALIAS("L1D_REPL", IAP_EVENT_45H_0FH) \ 1245 __PMC_EV_ALIAS("L1D_SPLIT.LOADS", IAP_EVENT_49H_01H) \ 1246 __PMC_EV_ALIAS("L1D_SPLIT.STORES", IAP_EVENT_49H_02H) \ 1247 __PMC_EV_ALIAS("L1I_MISSES", IAP_EVENT_81H_00H) \ 1248 __PMC_EV_ALIAS("L1I_READS", IAP_EVENT_80H_00H) \ 1249 __PMC_EV_ALIAS("L2_ADS", IAP_EVENT_21H) \ 1250 __PMC_EV_ALIAS("L2_DBUS_BUSY_RD", IAP_EVENT_23H) \ 1251 __PMC_EV_ALIAS("L2_IFETCH", IAP_EVENT_28H) \ 1252 __PMC_EV_ALIAS("L2_LD", IAP_EVENT_29H) \ 1253 __PMC_EV_ALIAS("L2_LINES_IN", IAP_EVENT_24H) \ 1254 __PMC_EV_ALIAS("L2_LINES_OUT", IAP_EVENT_26H) \ 1255 __PMC_EV_ALIAS("L2_LOCK", IAP_EVENT_2BH) \ 1256 __PMC_EV_ALIAS("L2_M_LINES_IN", IAP_EVENT_25H) \ 1257 __PMC_EV_ALIAS("L2_M_LINES_OUT", IAP_EVENT_27H) \ 1258 __PMC_EV_ALIAS("L2_NO_REQ", IAP_EVENT_32H) \ 1259 __PMC_EV_ALIAS("L2_REJECT_BUSQ", IAP_EVENT_30H) \ 1260 __PMC_EV_ALIAS("L2_RQSTS", IAP_EVENT_2EH) \ 1261 __PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.I_STATE", \ 1262 IAP_EVENT_2EH_41H) \ 1263 __PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.MESI", \ 1264 IAP_EVENT_2EH_4FH) \ 1265 __PMC_EV_ALIAS("L2_ST", IAP_EVENT_2AH) \ 1266 __PMC_EV_ALIAS("LOAD_BLOCK.L1D", IAP_EVENT_03H_20H) \ 1267 __PMC_EV_ALIAS("LOAD_BLOCK.OVERLAP_STORE", \ 1268 IAP_EVENT_03H_08H) \ 1269 __PMC_EV_ALIAS("LOAD_BLOCK.STA", IAP_EVENT_03H_02H) \ 1270 __PMC_EV_ALIAS("LOAD_BLOCK.STD", IAP_EVENT_03H_04H) \ 1271 __PMC_EV_ALIAS("LOAD_BLOCK.UNTIL_RETIRE", IAP_EVENT_03H_10H) \ 1272 __PMC_EV_ALIAS("LOAD_HIT_PRE", IAP_EVENT_4CH_00H) \ 1273 __PMC_EV_ALIAS("MACHINE_NUKES.MEM_ORDER", IAP_EVENT_C3H_04H) \ 1274 __PMC_EV_ALIAS("MACHINE_NUKES.SMC", IAP_EVENT_C3H_01H) \ 1275 __PMC_EV_ALIAS("MACRO_INSTS.CISC_DECODED", IAP_EVENT_AAH_08H) \ 1276 __PMC_EV_ALIAS("MACRO_INSTS.DECODED", IAP_EVENT_AAH_01H) \ 1277 __PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.RESET", \ 1278 IAP_EVENT_09H_01H) \ 1279 __PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.SUCCESS", \ 1280 IAP_EVENT_09H_02H) \ 1281 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.DTLB_MISS", \ 1282 IAP_EVENT_CBH_10H) \ 1283 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L1D_LINE_MISS", \ 1284 IAP_EVENT_CBH_02H) \ 1285 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L1D_MISS", \ 1286 IAP_EVENT_CBH_01H) \ 1287 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_LINE_MISS", \ 1288 IAP_EVENT_CBH_08H) \ 1289 __PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_MISS", \ 1290 IAP_EVENT_CBH_04H) \ 1291 __PMC_EV_ALIAS("MUL", IAP_EVENT_12H_00H) \ 1292 __PMC_EV_ALIAS("PAGE_WALKS.COUNT", IAP_EVENT_0CH_01H) \ 1293 __PMC_EV_ALIAS("PAGE_WALKS.CYCLES", IAP_EVENT_0CH_02H) \ 1294 __PMC_EV_ALIAS("PREF_RQSTS_DN", IAP_EVENT_F8H_00H) \ 1295 __PMC_EV_ALIAS("PREF_RQSTS_UP", IAP_EVENT_F0H_00H) \ 1296 __PMC_EV_ALIAS("RAT_STALLS.ANY", IAP_EVENT_D2H_0FH) \ 1297 __PMC_EV_ALIAS("RAT_STALLS.FLAGS", IAP_EVENT_D2H_04H) \ 1298 __PMC_EV_ALIAS("RAT_STALLS.FPSW", IAP_EVENT_D2H_08H) \ 1299 __PMC_EV_ALIAS("RAT_STALLS.OTHER_SERIALIZATION_STALLS", \ 1300 IAP_EVENT_D2H_10H) \ 1301 __PMC_EV_ALIAS("RAT_STALLS.PARTIAL_CYCLES", \ 1302 IAP_EVENT_D2H_02H) \ 1303 __PMC_EV_ALIAS("RAT_STALLS.ROB_READ_PORT", \ 1304 IAP_EVENT_D2H_01H) \ 1305 __PMC_EV_ALIAS("RESOURCE_STALLS.ANY", IAP_EVENT_DCH_1FH) \ 1306 __PMC_EV_ALIAS("RESOURCE_STALLS.BR_MISS_CLEAR", \ 1307 IAP_EVENT_DCH_10H) \ 1308 __PMC_EV_ALIAS("RESOURCE_STALLS.FPCW", IAP_EVENT_DCH_08H) \ 1309 __PMC_EV_ALIAS("RESOURCE_STALLS.LD_ST", IAP_EVENT_DCH_04H) \ 1310 __PMC_EV_ALIAS("RESOURCE_STALLS.ROB_FULL", \ 1311 IAP_EVENT_DCH_01H) \ 1312 __PMC_EV_ALIAS("RESOURCE_STALLS.RS_FULL", IAP_EVENT_DCH_02H) \ 1313 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED", IAP_EVENT_A0H_00H) \ 1314 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT0", IAP_EVENT_A1H_01H) \ 1315 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT1", IAP_EVENT_A1H_02H) \ 1316 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT2", IAP_EVENT_A1H_04H) \ 1317 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT3", IAP_EVENT_A1H_08H) \ 1318 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT4", IAP_EVENT_A1H_10H) \ 1319 __PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT5", IAP_EVENT_A1H_20H) \ 1320 __PMC_EV_ALIAS("SB_DRAIN_CYCLES", IAP_EVENT_04H_01H) \ 1321 __PMC_EV_ALIAS("SEGMENT_REG_LOADS", IAP_EVENT_06H_00H) \ 1322 __PMC_EV_ALIAS("SEG_REG_RENAMES.ANY", IAP_EVENT_D5H_0FH) \ 1323 __PMC_EV_ALIAS("SEG_REG_RENAMES.DS", IAP_EVENT_D5H_02H) \ 1324 __PMC_EV_ALIAS("SEG_REG_RENAMES.ES", IAP_EVENT_D5H_01H) \ 1325 __PMC_EV_ALIAS("SEG_REG_RENAMES.FS", IAP_EVENT_D5H_04H) \ 1326 __PMC_EV_ALIAS("SEG_REG_RENAMES.GS", IAP_EVENT_D5H_08H) \ 1327 __PMC_EV_ALIAS("SEG_RENAME_STALLS.ANY", IAP_EVENT_D4H_0FH) \ 1328 __PMC_EV_ALIAS("SEG_RENAME_STALLS.DS", IAP_EVENT_D4H_02H) \ 1329 __PMC_EV_ALIAS("SEG_RENAME_STALLS.ES", IAP_EVENT_D4H_01H) \ 1330 __PMC_EV_ALIAS("SEG_RENAME_STALLS.FS", IAP_EVENT_D4H_04H) \ 1331 __PMC_EV_ALIAS("SEG_RENAME_STALLS.GS", IAP_EVENT_D4H_08H) \ 1332 __PMC_EV_ALIAS("SIMD_ASSIST", IAP_EVENT_CDH_00H) \ 1333 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_DOUBLE", \ 1334 IAP_EVENT_CAH_04H) \ 1335 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_SINGLE", \ 1336 IAP_EVENT_CAH_01H) \ 1337 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_DOUBLE", \ 1338 IAP_EVENT_CAH_08H) \ 1339 __PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_SINGLE", \ 1340 IAP_EVENT_CAH_02H) \ 1341 __PMC_EV_ALIAS("SIMD_INSTR_RETIRED", IAP_EVENT_CEH_00H) \ 1342 __PMC_EV_ALIAS("SIMD_INST_RETIRED.ANY", IAP_EVENT_C7H_1FH) \ 1343 __PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_DOUBLE", \ 1344 IAP_EVENT_C7H_04H) \ 1345 __PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_SINGLE", \ 1346 IAP_EVENT_C7H_01H) \ 1347 __PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_DOUBLE", \ 1348 IAP_EVENT_C7H_08H) \ 1349 __PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_SINGLE", \ 1350 IAP_EVENT_C7H_02H) \ 1351 __PMC_EV_ALIAS("SIMD_INST_RETIRED.VECTOR", IAP_EVENT_C7H_10H) \ 1352 __PMC_EV_ALIAS("SIMD_SAT_INSTR_RETIRED", IAP_EVENT_CFH_00H) \ 1353 __PMC_EV_ALIAS("SIMD_SAT_UOP_EXEC", IAP_EVENT_B1H_00H) \ 1354 __PMC_EV_ALIAS("SIMD_UOPS_EXEC", IAP_EVENT_B0H_00H) \ 1355 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.ARITHMETIC", IAP_EVENT_B3H_20H) \ 1356 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.LOGICAL", IAP_EVENT_B3H_10H) \ 1357 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.MUL", IAP_EVENT_B3H_01H) \ 1358 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.PACK", IAP_EVENT_B3H_04H) \ 1359 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.SHIFT", IAP_EVENT_B3H_02H) \ 1360 __PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.UNPACK", IAP_EVENT_B3H_08H) \ 1361 __PMC_EV_ALIAS("SNOOP_STALL_DRV", IAP_EVENT_7EH) \ 1362 __PMC_EV_ALIAS("SSE_PRE_EXEC.L1", IAP_EVENT_07H_01H) \ 1363 __PMC_EV_ALIAS("SSE_PRE_EXEC.L2", IAP_EVENT_07H_02H) \ 1364 __PMC_EV_ALIAS("SSE_PRE_EXEC.NTA", IAP_EVENT_07H_00H) \ 1365 __PMC_EV_ALIAS("SSE_PRE_EXEC.STORES", IAP_EVENT_07H_03H) \ 1366 __PMC_EV_ALIAS("SSE_PRE_MISS.L1", IAP_EVENT_4BH_01H) \ 1367 __PMC_EV_ALIAS("SSE_PRE_MISS.L2", IAP_EVENT_4BH_02H) \ 1368 __PMC_EV_ALIAS("SSE_PRE_MISS.NTA", IAP_EVENT_4BH_00H) \ 1369 __PMC_EV_ALIAS("STORE_BLOCK.ORDER", IAP_EVENT_04H_02H) \ 1370 __PMC_EV_ALIAS("STORE_BLOCK.SNOOP", IAP_EVENT_04H_08H) \ 1371 __PMC_EV_ALIAS("THERMAL_TRIP", IAP_EVENT_3BH_C0H) \ 1372 __PMC_EV_ALIAS("UOPS_RETIRED.ANY", IAP_EVENT_C2H_0FH) \ 1373 __PMC_EV_ALIAS("UOPS_RETIRED.FUSED", IAP_EVENT_C2H_07H) \ 1374 __PMC_EV_ALIAS("UOPS_RETIRED.LD_IND_BR", IAP_EVENT_C2H_01H) \ 1375 __PMC_EV_ALIAS("UOPS_RETIRED.MACRO_FUSION", IAP_EVENT_C2H_04H) \ 1376 __PMC_EV_ALIAS("UOPS_RETIRED.NON_FUSED", IAP_EVENT_C2H_08H) \ 1377 __PMC_EV_ALIAS("UOPS_RETIRED.STD_STA", IAP_EVENT_C2H_02H) \ 1378 __PMC_EV_ALIAS("X87_OPS_RETIRED.ANY", IAP_EVENT_C1H_FEH) \ 1379 __PMC_EV_ALIAS("X87_OPS_RETIRED.FXCH", IAP_EVENT_C1H_01H) 1380 1381 /* timestamp counters. */ 1382 #define __PMC_EV_TSC() \ 1383 __PMC_EV(TSC, TSC) 1384 1385 #define PMC_EV_TSC_FIRST PMC_EV_TSC_TSC 1386 #define PMC_EV_TSC_LAST PMC_EV_TSC_TSC 1387 1388 /* 1389 * All known PMC events. 1390 * 1391 * PMC event numbers are allocated sparsely to allow new PMC events to 1392 * be added to a PMC class without breaking ABI compatibility. The 1393 * current allocation scheme is: 1394 * 1395 * START #EVENTS DESCRIPTION 1396 * 0 0x1000 Reserved 1397 * 0x1000 0x0001 TSC 1398 * 0x2000 0x0080 AMD K7 events 1399 * 0x2080 0x0100 AMD K8 events 1400 * 0x10000 0x0080 INTEL architectural fixed-function events 1401 * 0x10080 0x0F80 INTEL architectural programmable events 1402 * 0x11000 0x0080 INTEL Pentium 4 events 1403 * 0x11080 0x0080 INTEL Pentium MMX events 1404 * 0x11100 0x0100 INTEL Pentium Pro/P-II/P-III/Pentium-M events 1405 */ 1406 #define __PMC_EVENTS() \ 1407 __PMC_EV_BLOCK(TSC, 0x01000) \ 1408 __PMC_EV_TSC() \ 1409 __PMC_EV_BLOCK(K7, 0x2000) \ 1410 __PMC_EV_K7() \ 1411 __PMC_EV_BLOCK(K8, 0x2080) \ 1412 __PMC_EV_K8() \ 1413 __PMC_EV_BLOCK(IAF, 0x10000) \ 1414 __PMC_EV_IAF() \ 1415 __PMC_EV_BLOCK(IAP, 0x10080) \ 1416 __PMC_EV_IAP() \ 1417 __PMC_EV_BLOCK(P4, 0x11000) \ 1418 __PMC_EV_P4() \ 1419 __PMC_EV_BLOCK(P5, 0x11080) \ 1420 __PMC_EV_P5() \ 1421 __PMC_EV_BLOCK(P6, 0x11100) \ 1422 __PMC_EV_P6() 1423 1424 #define PMC_EVENT_FIRST PMC_EV_TSC_TSC 1425 #define PMC_EVENT_LAST PMC_EV_P6_LAST 1426 1427 #endif /* _DEV_HWPMC_PMC_EVENTS_H_ */ 1428