2005-06-09 19:45:09 +00:00
|
|
|
/*-
|
|
|
|
* Copyright (c) 2005 Joseph Koshy
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
* SUCH DAMAGE.
|
|
|
|
*
|
|
|
|
* $FreeBSD$
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _DEV_HWPMC_PMC_EVENTS_H_
|
|
|
|
#define _DEV_HWPMC_PMC_EVENTS_H_
|
|
|
|
|
|
|
|
/*
|
|
|
|
* PMC event codes.
|
|
|
|
*
|
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo
and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and
model 0x1C (Atom).
In these CPUs, the actual numbers, kinds and widths of PMCs present
need to queried at run time. Support for specific "architectural"
events also needs to be queried at run time.
Model 0xE CPUs support programmable PMCs, subsequent CPUs
additionally support "fixed-function" counters.
- Use event names that are close to vendor documentation, taking in
account that:
- events with identical semantics on two or more CPUs in this family
can have differing names in vendor documentation,
- identical vendor event names may map to differing events across
CPUs,
- each type of CPU supports a different subset of measurable
events.
Fixed-function and programmable counters both use the same vendor
names for events. The use of a class name prefix ("iaf-" or
"iap-" respectively) permits these to be distinguished.
- In libpmc, refactor pmc_name_of_event() into a public interface
and an internal helper function, for use by log handling code.
- Minor code tweaks: staticize a global, freshen a few comments.
Tested by: gnn
2008-11-27 09:00:47 +00:00
|
|
|
* __PMC_EV(CLASS, SYMBOLIC-NAME)
|
2005-06-09 19:45:09 +00:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* AMD K7 Events, from "The AMD Athlon(tm) Processor x86 Code
|
|
|
|
* Optimization Guide" [Doc#22007K, Feb 2002]
|
|
|
|
*/
|
|
|
|
|
2008-10-09 14:55:45 +00:00
|
|
|
#define __PMC_EV_K7() \
|
|
|
|
__PMC_EV(K7, DC_ACCESSES) \
|
|
|
|
__PMC_EV(K7, DC_MISSES) \
|
|
|
|
__PMC_EV(K7, DC_REFILLS_FROM_L2) \
|
|
|
|
__PMC_EV(K7, DC_REFILLS_FROM_SYSTEM) \
|
|
|
|
__PMC_EV(K7, DC_WRITEBACKS) \
|
|
|
|
__PMC_EV(K7, L1_DTLB_MISS_AND_L2_DTLB_HITS) \
|
|
|
|
__PMC_EV(K7, L1_AND_L2_DTLB_MISSES) \
|
|
|
|
__PMC_EV(K7, MISALIGNED_REFERENCES) \
|
|
|
|
__PMC_EV(K7, IC_FETCHES) \
|
|
|
|
__PMC_EV(K7, IC_MISSES) \
|
|
|
|
__PMC_EV(K7, L1_ITLB_MISSES) \
|
|
|
|
__PMC_EV(K7, L1_L2_ITLB_MISSES) \
|
|
|
|
__PMC_EV(K7, RETIRED_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K7, RETIRED_OPS) \
|
|
|
|
__PMC_EV(K7, RETIRED_BRANCHES) \
|
|
|
|
__PMC_EV(K7, RETIRED_BRANCHES_MISPREDICTED) \
|
|
|
|
__PMC_EV(K7, RETIRED_TAKEN_BRANCHES) \
|
|
|
|
__PMC_EV(K7, RETIRED_TAKEN_BRANCHES_MISPREDICTED) \
|
|
|
|
__PMC_EV(K7, RETIRED_FAR_CONTROL_TRANSFERS) \
|
|
|
|
__PMC_EV(K7, RETIRED_RESYNC_BRANCHES) \
|
|
|
|
__PMC_EV(K7, INTERRUPTS_MASKED_CYCLES) \
|
|
|
|
__PMC_EV(K7, INTERRUPTS_MASKED_WHILE_PENDING_CYCLES) \
|
|
|
|
__PMC_EV(K7, HARDWARE_INTERRUPTS)
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
#define PMC_EV_K7_FIRST PMC_EV_K7_DC_ACCESSES
|
|
|
|
#define PMC_EV_K7_LAST PMC_EV_K7_HARDWARE_INTERRUPTS
|
|
|
|
|
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo
and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and
model 0x1C (Atom).
In these CPUs, the actual numbers, kinds and widths of PMCs present
need to queried at run time. Support for specific "architectural"
events also needs to be queried at run time.
Model 0xE CPUs support programmable PMCs, subsequent CPUs
additionally support "fixed-function" counters.
- Use event names that are close to vendor documentation, taking in
account that:
- events with identical semantics on two or more CPUs in this family
can have differing names in vendor documentation,
- identical vendor event names may map to differing events across
CPUs,
- each type of CPU supports a different subset of measurable
events.
Fixed-function and programmable counters both use the same vendor
names for events. The use of a class name prefix ("iaf-" or
"iap-" respectively) permits these to be distinguished.
- In libpmc, refactor pmc_name_of_event() into a public interface
and an internal helper function, for use by log handling code.
- Minor code tweaks: staticize a global, freshen a few comments.
Tested by: gnn
2008-11-27 09:00:47 +00:00
|
|
|
|
2005-06-09 19:45:09 +00:00
|
|
|
/*
|
|
|
|
* Intel P4 Events, from "IA-32 Intel(r) Architecture Software
|
|
|
|
* Developer's Manual, Volume 3: System Programming Guide" [245472-012]
|
|
|
|
*/
|
|
|
|
|
2008-10-09 14:55:45 +00:00
|
|
|
#define __PMC_EV_P4() \
|
|
|
|
__PMC_EV(P4, TC_DELIVER_MODE) \
|
|
|
|
__PMC_EV(P4, BPU_FETCH_REQUEST) \
|
|
|
|
__PMC_EV(P4, ITLB_REFERENCE) \
|
|
|
|
__PMC_EV(P4, MEMORY_CANCEL) \
|
|
|
|
__PMC_EV(P4, MEMORY_COMPLETE) \
|
|
|
|
__PMC_EV(P4, LOAD_PORT_REPLAY) \
|
|
|
|
__PMC_EV(P4, STORE_PORT_REPLAY) \
|
|
|
|
__PMC_EV(P4, MOB_LOAD_REPLAY) \
|
|
|
|
__PMC_EV(P4, PAGE_WALK_TYPE) \
|
|
|
|
__PMC_EV(P4, BSQ_CACHE_REFERENCE) \
|
|
|
|
__PMC_EV(P4, IOQ_ALLOCATION) \
|
|
|
|
__PMC_EV(P4, IOQ_ACTIVE_ENTRIES) \
|
|
|
|
__PMC_EV(P4, FSB_DATA_ACTIVITY) \
|
|
|
|
__PMC_EV(P4, BSQ_ALLOCATION) \
|
|
|
|
__PMC_EV(P4, BSQ_ACTIVE_ENTRIES) \
|
|
|
|
__PMC_EV(P4, SSE_INPUT_ASSIST) \
|
|
|
|
__PMC_EV(P4, PACKED_SP_UOP) \
|
|
|
|
__PMC_EV(P4, PACKED_DP_UOP) \
|
|
|
|
__PMC_EV(P4, SCALAR_SP_UOP) \
|
|
|
|
__PMC_EV(P4, SCALAR_DP_UOP) \
|
|
|
|
__PMC_EV(P4, 64BIT_MMX_UOP) \
|
|
|
|
__PMC_EV(P4, 128BIT_MMX_UOP) \
|
|
|
|
__PMC_EV(P4, X87_FP_UOP) \
|
|
|
|
__PMC_EV(P4, X87_SIMD_MOVES_UOP) \
|
|
|
|
__PMC_EV(P4, GLOBAL_POWER_EVENTS) \
|
|
|
|
__PMC_EV(P4, TC_MS_XFER) \
|
|
|
|
__PMC_EV(P4, UOP_QUEUE_WRITES) \
|
|
|
|
__PMC_EV(P4, RETIRED_MISPRED_BRANCH_TYPE) \
|
|
|
|
__PMC_EV(P4, RETIRED_BRANCH_TYPE) \
|
|
|
|
__PMC_EV(P4, RESOURCE_STALL) \
|
|
|
|
__PMC_EV(P4, WC_BUFFER) \
|
|
|
|
__PMC_EV(P4, B2B_CYCLES) \
|
|
|
|
__PMC_EV(P4, BNR) \
|
|
|
|
__PMC_EV(P4, SNOOP) \
|
|
|
|
__PMC_EV(P4, RESPONSE) \
|
|
|
|
__PMC_EV(P4, FRONT_END_EVENT) \
|
|
|
|
__PMC_EV(P4, EXECUTION_EVENT) \
|
|
|
|
__PMC_EV(P4, REPLAY_EVENT) \
|
|
|
|
__PMC_EV(P4, INSTR_RETIRED) \
|
|
|
|
__PMC_EV(P4, UOPS_RETIRED) \
|
|
|
|
__PMC_EV(P4, UOP_TYPE) \
|
|
|
|
__PMC_EV(P4, BRANCH_RETIRED) \
|
|
|
|
__PMC_EV(P4, MISPRED_BRANCH_RETIRED) \
|
|
|
|
__PMC_EV(P4, X87_ASSIST) \
|
|
|
|
__PMC_EV(P4, MACHINE_CLEAR)
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
#define PMC_EV_P4_FIRST PMC_EV_P4_TC_DELIVER_MODE
|
|
|
|
#define PMC_EV_P4_LAST PMC_EV_P4_MACHINE_CLEAR
|
|
|
|
|
|
|
|
/* Intel Pentium Pro, P-II, P-III and Pentium-M style events */
|
|
|
|
|
2008-10-09 14:55:45 +00:00
|
|
|
#define __PMC_EV_P6() \
|
|
|
|
__PMC_EV(P6, DATA_MEM_REFS) \
|
|
|
|
__PMC_EV(P6, DCU_LINES_IN) \
|
|
|
|
__PMC_EV(P6, DCU_M_LINES_IN) \
|
|
|
|
__PMC_EV(P6, DCU_M_LINES_OUT) \
|
|
|
|
__PMC_EV(P6, DCU_MISS_OUTSTANDING) \
|
|
|
|
__PMC_EV(P6, IFU_FETCH) \
|
|
|
|
__PMC_EV(P6, IFU_FETCH_MISS) \
|
|
|
|
__PMC_EV(P6, ITLB_MISS) \
|
|
|
|
__PMC_EV(P6, IFU_MEM_STALL) \
|
|
|
|
__PMC_EV(P6, ILD_STALL) \
|
|
|
|
__PMC_EV(P6, L2_IFETCH) \
|
|
|
|
__PMC_EV(P6, L2_LD) \
|
|
|
|
__PMC_EV(P6, L2_ST) \
|
|
|
|
__PMC_EV(P6, L2_LINES_IN) \
|
|
|
|
__PMC_EV(P6, L2_LINES_OUT) \
|
|
|
|
__PMC_EV(P6, L2_M_LINES_INM) \
|
|
|
|
__PMC_EV(P6, L2_M_LINES_OUTM) \
|
|
|
|
__PMC_EV(P6, L2_RQSTS) \
|
|
|
|
__PMC_EV(P6, L2_ADS) \
|
|
|
|
__PMC_EV(P6, L2_DBUS_BUSY) \
|
|
|
|
__PMC_EV(P6, L2_DBUS_BUSY_RD) \
|
|
|
|
__PMC_EV(P6, BUS_DRDY_CLOCKS) \
|
|
|
|
__PMC_EV(P6, BUS_LOCK_CLOCKS) \
|
|
|
|
__PMC_EV(P6, BUS_REQ_OUTSTANDING) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_BRD) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_RFO) \
|
|
|
|
__PMC_EV(P6, BUS_TRANS_WB) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_IFETCH) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_INVAL) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_PWR) \
|
|
|
|
__PMC_EV(P6, BUS_TRANS_P) \
|
|
|
|
__PMC_EV(P6, BUS_TRANS_IO) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_DEF) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_BURST) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_ANY) \
|
|
|
|
__PMC_EV(P6, BUS_TRAN_MEM) \
|
|
|
|
__PMC_EV(P6, BUS_DATA_RCV) \
|
|
|
|
__PMC_EV(P6, BUS_BNR_DRV) \
|
|
|
|
__PMC_EV(P6, BUS_HIT_DRV) \
|
|
|
|
__PMC_EV(P6, BUS_HITM_DRV) \
|
|
|
|
__PMC_EV(P6, BUS_SNOOP_STALL) \
|
|
|
|
__PMC_EV(P6, FLOPS) \
|
|
|
|
__PMC_EV(P6, FP_COMPS_OPS_EXE) \
|
|
|
|
__PMC_EV(P6, FP_ASSIST) \
|
|
|
|
__PMC_EV(P6, MUL) \
|
|
|
|
__PMC_EV(P6, DIV) \
|
|
|
|
__PMC_EV(P6, CYCLES_DIV_BUSY) \
|
|
|
|
__PMC_EV(P6, LD_BLOCKS) \
|
|
|
|
__PMC_EV(P6, SB_DRAINS) \
|
|
|
|
__PMC_EV(P6, MISALIGN_MEM_REF) \
|
|
|
|
__PMC_EV(P6, EMON_KNI_PREF_DISPATCHED) \
|
|
|
|
__PMC_EV(P6, EMON_KNI_PREF_MISS) \
|
|
|
|
__PMC_EV(P6, INST_RETIRED) \
|
|
|
|
__PMC_EV(P6, UOPS_RETIRED) \
|
|
|
|
__PMC_EV(P6, INST_DECODED) \
|
|
|
|
__PMC_EV(P6, EMON_KNI_INST_RETIRED) \
|
|
|
|
__PMC_EV(P6, EMON_KNI_COMP_INST_RET) \
|
|
|
|
__PMC_EV(P6, HW_INT_RX) \
|
|
|
|
__PMC_EV(P6, CYCLES_INT_MASKED) \
|
|
|
|
__PMC_EV(P6, CYCLES_INT_PENDING_AND_MASKED) \
|
|
|
|
__PMC_EV(P6, BR_INST_RETIRED) \
|
|
|
|
__PMC_EV(P6, BR_MISS_PRED_RETIRED) \
|
|
|
|
__PMC_EV(P6, BR_TAKEN_RETIRED) \
|
|
|
|
__PMC_EV(P6, BR_MISS_PRED_TAKEN_RET) \
|
|
|
|
__PMC_EV(P6, BR_INST_DECODED) \
|
|
|
|
__PMC_EV(P6, BTB_MISSES) \
|
|
|
|
__PMC_EV(P6, BR_BOGUS) \
|
|
|
|
__PMC_EV(P6, BACLEARS) \
|
|
|
|
__PMC_EV(P6, RESOURCE_STALLS) \
|
|
|
|
__PMC_EV(P6, PARTIAL_RAT_STALLS) \
|
|
|
|
__PMC_EV(P6, SEGMENT_REG_LOADS) \
|
|
|
|
__PMC_EV(P6, CPU_CLK_UNHALTED) \
|
|
|
|
__PMC_EV(P6, MMX_INSTR_EXEC) \
|
|
|
|
__PMC_EV(P6, MMX_SAT_INSTR_EXEC) \
|
|
|
|
__PMC_EV(P6, MMX_UOPS_EXEC) \
|
|
|
|
__PMC_EV(P6, MMX_INSTR_TYPE_EXEC) \
|
|
|
|
__PMC_EV(P6, FP_MMX_TRANS) \
|
|
|
|
__PMC_EV(P6, MMX_ASSIST) \
|
|
|
|
__PMC_EV(P6, MMX_INSTR_RET) \
|
|
|
|
__PMC_EV(P6, SEG_RENAME_STALLS) \
|
|
|
|
__PMC_EV(P6, SEG_REG_RENAMES) \
|
|
|
|
__PMC_EV(P6, RET_SEG_RENAMES) \
|
|
|
|
__PMC_EV(P6, EMON_EST_TRANS) \
|
|
|
|
__PMC_EV(P6, EMON_THERMAL_TRIP) \
|
|
|
|
__PMC_EV(P6, BR_INST_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_BAC_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_CND_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_CND_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_IND_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_IND_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_RET_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_RET_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_RET_BAC_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_CALL_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_CALL_MISSP_EXEC) \
|
|
|
|
__PMC_EV(P6, BR_IND_CALL_EXEC) \
|
|
|
|
__PMC_EV(P6, EMON_SIMD_INSTR_RETIRED) \
|
|
|
|
__PMC_EV(P6, EMON_SYNCH_UOPS) \
|
|
|
|
__PMC_EV(P6, EMON_ESP_UOPS) \
|
|
|
|
__PMC_EV(P6, EMON_FUSED_UOPS_RET) \
|
|
|
|
__PMC_EV(P6, EMON_UNFUSION) \
|
|
|
|
__PMC_EV(P6, EMON_PREF_RQSTS_UP) \
|
|
|
|
__PMC_EV(P6, EMON_PREF_RQSTS_DN) \
|
|
|
|
__PMC_EV(P6, EMON_SSE_SSE2_INST_RETIRED) \
|
|
|
|
__PMC_EV(P6, EMON_SSE_SSE2_COMP_INST_RETIRED)
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
#define PMC_EV_P6_FIRST PMC_EV_P6_DATA_MEM_REFS
|
|
|
|
#define PMC_EV_P6_LAST PMC_EV_P6_EMON_SSE_SSE2_COMP_INST_RETIRED
|
|
|
|
|
|
|
|
/* AMD K8 PMCs */
|
|
|
|
|
|
|
|
#define __PMC_EV_K8() \
|
2008-10-09 14:55:45 +00:00
|
|
|
__PMC_EV(K8, FP_DISPATCHED_FPU_OPS) \
|
|
|
|
__PMC_EV(K8, FP_CYCLES_WITH_NO_FPU_OPS_RETIRED) \
|
|
|
|
__PMC_EV(K8, FP_DISPATCHED_FPU_FAST_FLAG_OPS) \
|
|
|
|
__PMC_EV(K8, LS_SEGMENT_REGISTER_LOAD) \
|
|
|
|
__PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SELF_MODIFYING_CODE) \
|
|
|
|
__PMC_EV(K8, LS_MICROARCHITECTURAL_RESYNC_BY_SNOOP) \
|
|
|
|
__PMC_EV(K8, LS_BUFFER2_FULL) \
|
|
|
|
__PMC_EV(K8, LS_LOCKED_OPERATION) \
|
|
|
|
__PMC_EV(K8, LS_MICROARCHITECTURAL_LATE_CANCEL) \
|
|
|
|
__PMC_EV(K8, LS_RETIRED_CFLUSH_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K8, LS_RETIRED_CPUID_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K8, DC_ACCESS) \
|
|
|
|
__PMC_EV(K8, DC_MISS) \
|
|
|
|
__PMC_EV(K8, DC_REFILL_FROM_L2) \
|
|
|
|
__PMC_EV(K8, DC_REFILL_FROM_SYSTEM) \
|
|
|
|
__PMC_EV(K8, DC_COPYBACK) \
|
|
|
|
__PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_HIT) \
|
|
|
|
__PMC_EV(K8, DC_L1_DTLB_MISS_AND_L2_DTLB_MISS) \
|
|
|
|
__PMC_EV(K8, DC_MISALIGNED_DATA_REFERENCE) \
|
|
|
|
__PMC_EV(K8, DC_MICROARCHITECTURAL_LATE_CANCEL) \
|
|
|
|
__PMC_EV(K8, DC_MICROARCHITECTURAL_EARLY_CANCEL) \
|
|
|
|
__PMC_EV(K8, DC_ONE_BIT_ECC_ERROR) \
|
|
|
|
__PMC_EV(K8, DC_DISPATCHED_PREFETCH_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K8, DC_DCACHE_ACCESSES_BY_LOCKS) \
|
|
|
|
__PMC_EV(K8, BU_CPU_CLK_UNHALTED) \
|
|
|
|
__PMC_EV(K8, BU_INTERNAL_L2_REQUEST) \
|
|
|
|
__PMC_EV(K8, BU_FILL_REQUEST_L2_MISS) \
|
|
|
|
__PMC_EV(K8, BU_FILL_INTO_L2) \
|
|
|
|
__PMC_EV(K8, IC_FETCH) \
|
|
|
|
__PMC_EV(K8, IC_MISS) \
|
|
|
|
__PMC_EV(K8, IC_REFILL_FROM_L2) \
|
|
|
|
__PMC_EV(K8, IC_REFILL_FROM_SYSTEM) \
|
|
|
|
__PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_HIT) \
|
|
|
|
__PMC_EV(K8, IC_L1_ITLB_MISS_AND_L2_ITLB_MISS) \
|
|
|
|
__PMC_EV(K8, IC_MICROARCHITECTURAL_RESYNC_BY_SNOOP) \
|
|
|
|
__PMC_EV(K8, IC_INSTRUCTION_FETCH_STALL) \
|
|
|
|
__PMC_EV(K8, IC_RETURN_STACK_HIT) \
|
|
|
|
__PMC_EV(K8, IC_RETURN_STACK_OVERFLOW) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_X86_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_UOPS) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_BRANCHES) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_BRANCHES_MISPREDICTED) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_FAR_CONTROL_TRANSFERS) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_RESYNCS) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_NEAR_RETURNS) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_NEAR_RETURNS_MISPREDICTED) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_TAKEN_BRANCHES_MISPREDICTED_BY_ADDR_MISCOMPARE) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_FPU_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K8, FR_RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(K8, FR_INTERRUPTS_MASKED_CYCLES) \
|
|
|
|
__PMC_EV(K8, FR_INTERRUPTS_MASKED_WHILE_PENDING_CYCLES) \
|
|
|
|
__PMC_EV(K8, FR_TAKEN_HARDWARE_INTERRUPTS) \
|
|
|
|
__PMC_EV(K8, FR_DECODER_EMPTY) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALLS) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_FROM_BRANCH_ABORT_TO_RETIRE) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_FOR_SERIALIZATION) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_FOR_SEGMENT_LOAD) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_REORDER_BUFFER_IS_FULL) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_RESERVATION_STATIONS_ARE_FULL) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FPU_IS_FULL) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_LS_IS_FULL) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_WAITING_FOR_ALL_TO_BE_QUIET) \
|
|
|
|
__PMC_EV(K8, FR_DISPATCH_STALL_WHEN_FAR_XFER_OR_RESYNC_BRANCH_PENDING) \
|
|
|
|
__PMC_EV(K8, FR_FPU_EXCEPTIONS) \
|
|
|
|
__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR0) \
|
|
|
|
__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR1) \
|
|
|
|
__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR2) \
|
|
|
|
__PMC_EV(K8, FR_NUMBER_OF_BREAKPOINTS_FOR_DR3) \
|
|
|
|
__PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_ACCESS_EVENT) \
|
|
|
|
__PMC_EV(K8, NB_MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOW) \
|
|
|
|
__PMC_EV(K8, NB_MEMORY_CONTROLLER_DRAM_COMMAND_SLOTS_MISSED) \
|
|
|
|
__PMC_EV(K8, NB_MEMORY_CONTROLLER_TURNAROUND) \
|
|
|
|
__PMC_EV(K8, NB_MEMORY_CONTROLLER_BYPASS_SATURATION) \
|
|
|
|
__PMC_EV(K8, NB_SIZED_COMMANDS) \
|
|
|
|
__PMC_EV(K8, NB_PROBE_RESULT) \
|
|
|
|
__PMC_EV(K8, NB_HT_BUS0_BANDWIDTH) \
|
|
|
|
__PMC_EV(K8, NB_HT_BUS1_BANDWIDTH) \
|
|
|
|
__PMC_EV(K8, NB_HT_BUS2_BANDWIDTH)
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
#define PMC_EV_K8_FIRST PMC_EV_K8_FP_DISPATCHED_FPU_OPS
|
|
|
|
#define PMC_EV_K8_LAST PMC_EV_K8_NB_HT_BUS2_BANDWIDTH
|
|
|
|
|
|
|
|
|
2008-03-14 06:16:18 +00:00
|
|
|
/*
|
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo
and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and
model 0x1C (Atom).
In these CPUs, the actual numbers, kinds and widths of PMCs present
need to queried at run time. Support for specific "architectural"
events also needs to be queried at run time.
Model 0xE CPUs support programmable PMCs, subsequent CPUs
additionally support "fixed-function" counters.
- Use event names that are close to vendor documentation, taking in
account that:
- events with identical semantics on two or more CPUs in this family
can have differing names in vendor documentation,
- identical vendor event names may map to differing events across
CPUs,
- each type of CPU supports a different subset of measurable
events.
Fixed-function and programmable counters both use the same vendor
names for events. The use of a class name prefix ("iaf-" or
"iap-" respectively) permits these to be distinguished.
- In libpmc, refactor pmc_name_of_event() into a public interface
and an internal helper function, for use by log handling code.
- Minor code tweaks: staticize a global, freshen a few comments.
Tested by: gnn
2008-11-27 09:00:47 +00:00
|
|
|
* Intel Pentium and Pentium MMX events, from the "Intel 64 and IA-32
|
|
|
|
* Architectures Software Developer's Manual, Volume 3B: System Programming
|
|
|
|
* Guide, Part 2, August 2007".
|
2008-03-14 06:16:18 +00:00
|
|
|
*/
|
2005-06-09 19:45:09 +00:00
|
|
|
#define __PMC_EV_P5() \
|
2008-10-09 14:55:45 +00:00
|
|
|
__PMC_EV(P5, DATA_READ) \
|
|
|
|
__PMC_EV(P5, DATA_WRITE) \
|
|
|
|
__PMC_EV(P5, DATA_TLB_MISS) \
|
|
|
|
__PMC_EV(P5, DATA_READ_MISS) \
|
|
|
|
__PMC_EV(P5, DATA_WRITE_MISS) \
|
|
|
|
__PMC_EV(P5, WRITE_HIT_TO_M_OR_E_STATE_LINES) \
|
|
|
|
__PMC_EV(P5, DATA_CACHE_LINES_WRITTEN_BACK) \
|
|
|
|
__PMC_EV(P5, EXTERNAL_SNOOPS) \
|
|
|
|
__PMC_EV(P5, EXTERNAL_DATA_CACHE_SNOOP_HITS) \
|
|
|
|
__PMC_EV(P5, MEMORY_ACCESSES_IN_BOTH_PIPES) \
|
|
|
|
__PMC_EV(P5, BANK_CONFLICTS) \
|
|
|
|
__PMC_EV(P5, MISALIGNED_DATA_OR_IO_REFERENCES) \
|
|
|
|
__PMC_EV(P5, CODE_READ) \
|
|
|
|
__PMC_EV(P5, CODE_TLB_MISS) \
|
|
|
|
__PMC_EV(P5, CODE_CACHE_MISS) \
|
|
|
|
__PMC_EV(P5, ANY_SEGMENT_REGISTER_LOADED) \
|
|
|
|
__PMC_EV(P5, BRANCHES) \
|
|
|
|
__PMC_EV(P5, BTB_HITS) \
|
|
|
|
__PMC_EV(P5, TAKEN_BRANCH_OR_BTB_HIT) \
|
|
|
|
__PMC_EV(P5, PIPELINE_FLUSHES) \
|
|
|
|
__PMC_EV(P5, INSTRUCTIONS_EXECUTED) \
|
|
|
|
__PMC_EV(P5, INSTRUCTIONS_EXECUTED_V_PIPE) \
|
|
|
|
__PMC_EV(P5, BUS_CYCLE_DURATION) \
|
|
|
|
__PMC_EV(P5, WRITE_BUFFER_FULL_STALL_DURATION) \
|
|
|
|
__PMC_EV(P5, WAITING_FOR_DATA_MEMORY_READ_STALL_DURATION) \
|
|
|
|
__PMC_EV(P5, STALL_ON_WRITE_TO_AN_E_OR_M_STATE_LINE) \
|
|
|
|
__PMC_EV(P5, LOCKED_BUS_CYCLE) \
|
|
|
|
__PMC_EV(P5, IO_READ_OR_WRITE_CYCLE) \
|
|
|
|
__PMC_EV(P5, NONCACHEABLE_MEMORY_READS) \
|
|
|
|
__PMC_EV(P5, PIPELINE_AGI_STALLS) \
|
|
|
|
__PMC_EV(P5, FLOPS) \
|
|
|
|
__PMC_EV(P5, BREAKPOINT_MATCH_ON_DR0_REGISTER) \
|
|
|
|
__PMC_EV(P5, BREAKPOINT_MATCH_ON_DR1_REGISTER) \
|
|
|
|
__PMC_EV(P5, BREAKPOINT_MATCH_ON_DR2_REGISTER) \
|
|
|
|
__PMC_EV(P5, BREAKPOINT_MATCH_ON_DR3_REGISTER) \
|
|
|
|
__PMC_EV(P5, HARDWARE_INTERRUPTS) \
|
|
|
|
__PMC_EV(P5, DATA_READ_OR_WRITE) \
|
|
|
|
__PMC_EV(P5, DATA_READ_MISS_OR_WRITE_MISS) \
|
|
|
|
__PMC_EV(P5, BUS_OWNERSHIP_LATENCY) \
|
|
|
|
__PMC_EV(P5, BUS_OWNERSHIP_TRANSFERS) \
|
|
|
|
__PMC_EV(P5, MMX_INSTRUCTIONS_EXECUTED_U_PIPE) \
|
|
|
|
__PMC_EV(P5, MMX_INSTRUCTIONS_EXECUTED_V_PIPE) \
|
|
|
|
__PMC_EV(P5, CACHE_M_LINE_SHARING) \
|
|
|
|
__PMC_EV(P5, CACHE_LINE_SHARING) \
|
|
|
|
__PMC_EV(P5, EMMS_INSTRUCTIONS_EXECUTED) \
|
|
|
|
__PMC_EV(P5, TRANSITIONS_BETWEEN_MMX_AND_FP_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(P5, BUS_UTILIZATION_DUE_TO_PROCESSOR_ACTIVITY) \
|
|
|
|
__PMC_EV(P5, WRITES_TO_NONCACHEABLE_MEMORY) \
|
|
|
|
__PMC_EV(P5, SATURATING_MMX_INSTRUCTIONS_EXECUTED) \
|
|
|
|
__PMC_EV(P5, SATURATIONS_PERFORMED) \
|
|
|
|
__PMC_EV(P5, NUMBER_OF_CYCLES_NOT_IN_HALT_STATE) \
|
|
|
|
__PMC_EV(P5, DATA_CACHE_TLB_MISS_STALL_DURATION) \
|
|
|
|
__PMC_EV(P5, MMX_INSTRUCTION_DATA_READS) \
|
|
|
|
__PMC_EV(P5, MMX_INSTRUCTION_DATA_READ_MISSES) \
|
|
|
|
__PMC_EV(P5, FLOATING_POINT_STALLS_DURATION) \
|
|
|
|
__PMC_EV(P5, TAKEN_BRANCHES) \
|
|
|
|
__PMC_EV(P5, D1_STARVATION_AND_FIFO_IS_EMPTY) \
|
|
|
|
__PMC_EV(P5, D1_STARVATION_AND_ONLY_ONE_INSTRUCTION_IN_FIFO) \
|
|
|
|
__PMC_EV(P5, MMX_INSTRUCTION_DATA_WRITES) \
|
|
|
|
__PMC_EV(P5, MMX_INSTRUCTION_DATA_WRITE_MISSES) \
|
|
|
|
__PMC_EV(P5, PIPELINE_FLUSHES_DUE_TO_WRONG_BRANCH_PREDICTIONS) \
|
2005-06-09 19:45:09 +00:00
|
|
|
__PMC_EV(P5, \
|
2008-10-09 14:55:45 +00:00
|
|
|
PIPELINE_FLUSHES_DUE_TO_WRONG_BRANCH_PREDICTIONS_RESOLVED_IN_WB_STAGE) \
|
|
|
|
__PMC_EV(P5, MISALIGNED_DATA_MEMORY_REFERENCE_ON_MMX_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(P5, PIPELINE_STALL_FOR_MMX_INSTRUCTION_DATA_MEMORY_READS) \
|
|
|
|
__PMC_EV(P5, MISPREDICTED_OR_UNPREDICTED_RETURNS) \
|
|
|
|
__PMC_EV(P5, PREDICTED_RETURNS) \
|
|
|
|
__PMC_EV(P5, MMX_MULTIPLY_UNIT_INTERLOCK) \
|
|
|
|
__PMC_EV(P5, MOVD_MOVQ_STORE_STALL_DUE_TO_PREVIOUS_MMX_OPERATION) \
|
|
|
|
__PMC_EV(P5, RETURNS) \
|
|
|
|
__PMC_EV(P5, BTB_FALSE_ENTRIES) \
|
|
|
|
__PMC_EV(P5, BTB_MISS_PREDICTION_ON_NOT_TAKEN_BRANCH) \
|
2005-06-09 19:45:09 +00:00
|
|
|
__PMC_EV(P5, \
|
2008-10-09 14:55:45 +00:00
|
|
|
FULL_WRITE_BUFFER_STALL_DURATION_WHILE_EXECUTING_MMX_INSTRUCTIONS) \
|
|
|
|
__PMC_EV(P5, STALL_ON_MMX_INSTRUCTION_WRITE_TO_E_OR_M_STATE_LINE)
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
#define PMC_EV_P5_FIRST PMC_EV_P5_DATA_READ
|
|
|
|
#define PMC_EV_P5_LAST \
|
|
|
|
PMC_EV_P5_STALL_ON_MMX_INSTRUCTION_WRITE_TO_E_OR_M_STATE_LINE
|
|
|
|
|
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo
and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and
model 0x1C (Atom).
In these CPUs, the actual numbers, kinds and widths of PMCs present
need to queried at run time. Support for specific "architectural"
events also needs to be queried at run time.
Model 0xE CPUs support programmable PMCs, subsequent CPUs
additionally support "fixed-function" counters.
- Use event names that are close to vendor documentation, taking in
account that:
- events with identical semantics on two or more CPUs in this family
can have differing names in vendor documentation,
- identical vendor event names may map to differing events across
CPUs,
- each type of CPU supports a different subset of measurable
events.
Fixed-function and programmable counters both use the same vendor
names for events. The use of a class name prefix ("iaf-" or
"iap-" respectively) permits these to be distinguished.
- In libpmc, refactor pmc_name_of_event() into a public interface
and an internal helper function, for use by log handling code.
- Minor code tweaks: staticize a global, freshen a few comments.
Tested by: gnn
2008-11-27 09:00:47 +00:00
|
|
|
/*
|
|
|
|
* Events supported by Intel architectural fixed function counters,
|
|
|
|
* from the "Intel 64 and IA-32 Architectures Software Developer's
|
|
|
|
* Manual Volume 3B: System Programming Guide, Part 2", July 2008.
|
|
|
|
*/
|
|
|
|
#define __PMC_EV_IAF() \
|
|
|
|
__PMC_EV(IAF, INSTR_RETIRED_ANY) \
|
|
|
|
__PMC_EV(IAF, CPU_CLK_UNHALTED_CORE) \
|
|
|
|
__PMC_EV(IAF, CPU_CLK_UNHALTED_REF)
|
|
|
|
|
|
|
|
#define PMC_EV_IAF_FIRST PMC_EV_IAF_INSTR_RETIRED_ANY
|
|
|
|
#define PMC_EV_IAF_LAST PMC_EV_IAF_CPU_CLK_UNHALTED_REF
|
|
|
|
|
2008-12-03 15:23:08 +00:00
|
|
|
#define __PMC_EV_ALIAS_IAF() \
|
|
|
|
__PMC_EV_ALIAS("instruction-retired", IAF_INSTR_RETIRED_ANY) \
|
|
|
|
__PMC_EV_ALIAS("unhalted-core-cycles", IAF_CPU_CLK_UNHALTED_CORE) \
|
|
|
|
__PMC_EV_ALIAS("unhalted-reference-cycles", IAF_CPU_CLK_UNHALTED_REF)
|
|
|
|
|
- Add support for PMCs in Intel CPUs of Family 6, model 0xE (Core Solo
and Core Duo), models 0xF (Core2), model 0x17 (Core2Extreme) and
model 0x1C (Atom).
In these CPUs, the actual numbers, kinds and widths of PMCs present
need to queried at run time. Support for specific "architectural"
events also needs to be queried at run time.
Model 0xE CPUs support programmable PMCs, subsequent CPUs
additionally support "fixed-function" counters.
- Use event names that are close to vendor documentation, taking in
account that:
- events with identical semantics on two or more CPUs in this family
can have differing names in vendor documentation,
- identical vendor event names may map to differing events across
CPUs,
- each type of CPU supports a different subset of measurable
events.
Fixed-function and programmable counters both use the same vendor
names for events. The use of a class name prefix ("iaf-" or
"iap-" respectively) permits these to be distinguished.
- In libpmc, refactor pmc_name_of_event() into a public interface
and an internal helper function, for use by log handling code.
- Minor code tweaks: staticize a global, freshen a few comments.
Tested by: gnn
2008-11-27 09:00:47 +00:00
|
|
|
/*
|
|
|
|
* Events supported by programmable function counters present in
|
|
|
|
* Intel Atom, Core and Core2 CPUs, from the "Intel 64 and IA-32
|
|
|
|
* Architectures Software Developer's Manual Volume 3B: System Programming
|
|
|
|
* Guide, Part 2", July 2008.
|
|
|
|
*
|
|
|
|
* These PMCs select events with a combination of an event code and
|
|
|
|
* unit mask. Quirks that need to be taken care of include:
|
|
|
|
* - The set of (event code, umask) combinations supported by a processor
|
|
|
|
* varies according to the processor model.
|
|
|
|
* - A given (event code, umask) combination need not measure the same
|
|
|
|
* hardware event in all processor models.
|
|
|
|
* - Event names in vendor documentation for an (event code, umask) pair
|
|
|
|
* may vary according to the CPU model.
|
|
|
|
* - Identically named events can map to different (event code, umask)
|
|
|
|
* pairs on different CPUs.
|
|
|
|
* - New (event code, umask) combinations continue to be added as CPUs
|
|
|
|
* evolve. The interface between hwpmc(4) and libpmc(3) needs to be
|
|
|
|
* robust with respect to ABI changes.
|
|
|
|
*
|
|
|
|
* The IAP_EVENT_* symbols below define the ABI between userland and kernel.
|
|
|
|
* New (event code, * umask) combinations used in new CPUs would be added
|
|
|
|
* to the end of the list. Vendor names for events are mapped to IAP_EVENT_*
|
|
|
|
* symbols using aliases. The final disambiguation of semantics based on
|
|
|
|
* the CPU model happens inside hwpmc(4).
|
|
|
|
*/
|
|
|
|
#define __PMC_EV_IAP() \
|
|
|
|
__PMC_EV(IAP, EVENT_02H_81H) \
|
|
|
|
__PMC_EV(IAP, EVENT_03H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_03H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_03H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_03H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_03H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_03H_20H) \
|
|
|
|
__PMC_EV(IAP, EVENT_04H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_04H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_04H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_04H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_05H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_06H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_07H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_07H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_07H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_07H_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_07H_06H) \
|
|
|
|
__PMC_EV(IAP, EVENT_07H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_05H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_06H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_07H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_08H_09H) \
|
|
|
|
__PMC_EV(IAP, EVENT_09H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_09H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_0CH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_0CH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_0CH_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_10H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_10H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_10H_81H) \
|
|
|
|
__PMC_EV(IAP, EVENT_11H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_11H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_11H_81H) \
|
|
|
|
__PMC_EV(IAP, EVENT_12H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_12H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_12H_81H) \
|
|
|
|
__PMC_EV(IAP, EVENT_13H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_13H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_13H_81H) \
|
|
|
|
__PMC_EV(IAP, EVENT_14H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_14H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_18H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_19H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_19H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_19H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_21H) \
|
|
|
|
__PMC_EV(IAP, EVENT_22H) \
|
|
|
|
__PMC_EV(IAP, EVENT_23H) \
|
|
|
|
__PMC_EV(IAP, EVENT_24H) \
|
|
|
|
__PMC_EV(IAP, EVENT_25H) \
|
|
|
|
__PMC_EV(IAP, EVENT_26H) \
|
|
|
|
__PMC_EV(IAP, EVENT_27H) \
|
|
|
|
__PMC_EV(IAP, EVENT_28H) \
|
|
|
|
__PMC_EV(IAP, EVENT_29H) \
|
|
|
|
__PMC_EV(IAP, EVENT_2AH) \
|
|
|
|
__PMC_EV(IAP, EVENT_2BH) \
|
|
|
|
__PMC_EV(IAP, EVENT_2EH) \
|
|
|
|
__PMC_EV(IAP, EVENT_2EH_41H) \
|
|
|
|
__PMC_EV(IAP, EVENT_2EH_4FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_30H) \
|
|
|
|
__PMC_EV(IAP, EVENT_32H) \
|
|
|
|
__PMC_EV(IAP, EVENT_3AH) \
|
|
|
|
__PMC_EV(IAP, EVENT_3AH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_3BH_C0H) \
|
|
|
|
__PMC_EV(IAP, EVENT_3CH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_3CH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_3CH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_40H) \
|
|
|
|
__PMC_EV(IAP, EVENT_40H_21H) \
|
|
|
|
__PMC_EV(IAP, EVENT_41H) \
|
|
|
|
__PMC_EV(IAP, EVENT_41H_22H) \
|
|
|
|
__PMC_EV(IAP, EVENT_42H) \
|
|
|
|
__PMC_EV(IAP, EVENT_42H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_43H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_43H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_44H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_45H_0FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_46H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_47H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_48H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_49H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_49H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_49H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4BH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4BH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4BH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4BH_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4CH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4EH_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_4FH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_60H) \
|
|
|
|
__PMC_EV(IAP, EVENT_61H) \
|
|
|
|
__PMC_EV(IAP, EVENT_61H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_62H) \
|
|
|
|
__PMC_EV(IAP, EVENT_62H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_63H) \
|
|
|
|
__PMC_EV(IAP, EVENT_64H) \
|
|
|
|
__PMC_EV(IAP, EVENT_64H_40H) \
|
|
|
|
__PMC_EV(IAP, EVENT_65H) \
|
|
|
|
__PMC_EV(IAP, EVENT_66H) \
|
|
|
|
__PMC_EV(IAP, EVENT_67H) \
|
|
|
|
__PMC_EV(IAP, EVENT_68H) \
|
|
|
|
__PMC_EV(IAP, EVENT_69H) \
|
|
|
|
__PMC_EV(IAP, EVENT_6AH) \
|
|
|
|
__PMC_EV(IAP, EVENT_6BH) \
|
|
|
|
__PMC_EV(IAP, EVENT_6CH) \
|
|
|
|
__PMC_EV(IAP, EVENT_6DH) \
|
|
|
|
__PMC_EV(IAP, EVENT_6EH) \
|
|
|
|
__PMC_EV(IAP, EVENT_6FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_70H) \
|
|
|
|
__PMC_EV(IAP, EVENT_77H) \
|
|
|
|
__PMC_EV(IAP, EVENT_78H) \
|
|
|
|
__PMC_EV(IAP, EVENT_7AH) \
|
|
|
|
__PMC_EV(IAP, EVENT_7BH) \
|
|
|
|
__PMC_EV(IAP, EVENT_7DH) \
|
|
|
|
__PMC_EV(IAP, EVENT_7EH) \
|
|
|
|
__PMC_EV(IAP, EVENT_7EH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_7FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_80H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_80H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_80H_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_81H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_82H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_82H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_82H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_82H_12H) \
|
|
|
|
__PMC_EV(IAP, EVENT_82H_40H) \
|
|
|
|
__PMC_EV(IAP, EVENT_83H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_85H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_86H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_87H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_88H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_89H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_8AH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_8BH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_8CH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_8DH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_8EH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_8FH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_90H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_91H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_92H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_93H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_94H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_97H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_98H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A0H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A1H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A1H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A1H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A1H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A1H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A1H_20H) \
|
|
|
|
__PMC_EV(IAP, EVENT_A2H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_AAH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_AAH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_AAH_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_AAH_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_ABH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_ABH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B0H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B0H_80H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B1H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B1H_80H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_20H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_81H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_82H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_84H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_88H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_90H) \
|
|
|
|
__PMC_EV(IAP, EVENT_B3H_A0H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C0H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C0H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C0H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C0H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C0H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C1H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C1H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C1H_FEH) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_07H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_0FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C2H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C3H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C3H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C3H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_0CH) \
|
|
|
|
__PMC_EV(IAP, EVENT_C4H_0FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_C5H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C6H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C6H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C6H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C7H_1FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_C8H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_C9H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CAH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CAH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CAH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CAH_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CAH_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CBH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CBH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CBH_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CBH_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CBH_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CCH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CCH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CCH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CDH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CEH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_CFH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D0H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D2H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D2H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D2H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D2H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D2H_0FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_D2H_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D4H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D4H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D4H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D4H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D4H_0FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_D5H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D5H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D5H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D5H_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D5H_0FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_D7H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D8H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D8H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D8H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D8H_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D8H_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D9H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D9H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D9H_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_D9H_03H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DAH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DAH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DAH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DBH_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DCH_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DCH_02H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DCH_04H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DCH_08H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DCH_10H) \
|
|
|
|
__PMC_EV(IAP, EVENT_DCH_1FH) \
|
|
|
|
__PMC_EV(IAP, EVENT_E0H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_E0H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_E2H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_E4H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_E6H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_E6H_01H) \
|
|
|
|
__PMC_EV(IAP, EVENT_F0H_00H) \
|
|
|
|
__PMC_EV(IAP, EVENT_F8H_00H)
|
|
|
|
|
|
|
|
#define PMC_EV_IAP_FIRST PMC_EV_IAP_EVENT_02H_81H
|
|
|
|
#define PMC_EV_IAP_LAST PMC_EV_IAP_EVENT_F8H_00H
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Map "architectural" event names to event ids.
|
|
|
|
*/
|
|
|
|
#define __PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \
|
|
|
|
__PMC_EV_ALIAS("branch-instruction-retired", IAP_EVENT_C4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("branch-misses-retired", IAP_EVENT_C5H_00H) \
|
|
|
|
__PMC_EV_ALIAS("instruction-retired", IAP_EVENT_C0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("llc-misses", IAP_EVENT_2EH_41H) \
|
|
|
|
__PMC_EV_ALIAS("llc-reference", IAP_EVENT_2EH_4FH) \
|
|
|
|
__PMC_EV_ALIAS("unhalted-reference-cycles", IAP_EVENT_3CH_01H) \
|
|
|
|
__PMC_EV_ALIAS("unhalted-core-cycles", IAP_EVENT_3CH_00H)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Aliases for Atom PMCs.
|
|
|
|
*/
|
|
|
|
#define __PMC_EV_ALIAS_ATOM() \
|
|
|
|
__PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \
|
|
|
|
__PMC_EV_ALIAS("BACLEARS", IAP_EVENT_E6H_01H) \
|
|
|
|
__PMC_EV_ALIAS("BOGUS_BR", IAP_EVENT_E4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_BAC_MISSP_EXEC", IAP_EVENT_8AH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CALL_EXEC", IAP_EVENT_92H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CALL_MISSP_EXEC", IAP_EVENT_93H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CND_EXEC", IAP_EVENT_8BH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CND_MISSP_EXEC", IAP_EVENT_8CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_IND_CALL_EXEC", IAP_EVENT_94H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_IND_EXEC", IAP_EVENT_8DH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_IND_MISSP_EXEC", IAP_EVENT_8EH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_DECODED", IAP_EVENT_E0H_01H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_EXEC", IAP_EVENT_88H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.ANY", IAP_EVENT_C4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.ANY1", IAP_EVENT_C4H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED", IAP_EVENT_C5H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_NOT_TAKEN", \
|
|
|
|
IAP_EVENT_C4H_02H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_TAKEN", IAP_EVENT_C4H_08H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.PRED_NOT_TAKEN",IAP_EVENT_C4H_01H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.PRED_TAKEN", IAP_EVENT_C4H_04H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.TAKEN", IAP_EVENT_C4H_0CH) \
|
|
|
|
__PMC_EV_ALIAS("BR_MISSP_EXEC", IAP_EVENT_89H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_RET_BAC_MISSP_EXEC", IAP_EVENT_91H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_RET_EXEC", IAP_EVENT_8FH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_RET_MISSP_EXEC", IAP_EVENT_90H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_TKN_BUBBLE_1", IAP_EVENT_97H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_TKN_BUBBLE_2", IAP_EVENT_98H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BUSQ_EMPTY", IAP_EVENT_7DH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_BNR_DRV", IAP_EVENT_61H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_DATA_RCV", IAP_EVENT_64H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_DRDY_CLOCKS", IAP_EVENT_62H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_HITM_DRV", IAP_EVENT_7BH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_HIT_DRV", IAP_EVENT_7AH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_IO_WAIT", IAP_EVENT_7FH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_LOCK_CLOCKS", IAP_EVENT_63H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_REQUEST_OUTSTANDING", IAP_EVENT_60H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_ANY", IAP_EVENT_70H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_BRD", IAP_EVENT_65H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_BURST", IAP_EVENT_6EH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_DEF", IAP_EVENT_6DH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_IFETCH", IAP_EVENT_68H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_INVAL", IAP_EVENT_69H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_IO", IAP_EVENT_6CH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_MEM", IAP_EVENT_6FH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_P", IAP_EVENT_6BH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_PWR", IAP_EVENT_6AH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_RFO", IAP_EVENT_66H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_WB", IAP_EVENT_67H) \
|
|
|
|
__PMC_EV_ALIAS("CMP_SNOOP", IAP_EVENT_78H) \
|
|
|
|
__PMC_EV_ALIAS("CPU_CLK_UNHALTED.BUS", IAP_EVENT_3CH_01H) \
|
|
|
|
__PMC_EV_ALIAS("CPU_CLK_UNHALTED.CORE_P", IAP_EVENT_3CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("CPU_CLK_UNHALTED.NO_OTHER", IAP_EVENT_3CH_02H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_DIV_BUSY", IAP_EVENT_14H_01H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_INT_MASKED.CYCLES_INT_MASKED", \
|
|
|
|
IAP_EVENT_C6H_01H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_INT_MASKED.CYCLES_INT_PENDING_AND_MASKED", \
|
|
|
|
IAP_EVENT_C6H_02H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_L1I_MEM_STALLED", IAP_EVENT_86H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DATA_TLB_MISSES.DTLB_MISS", IAP_EVENT_08H_07H) \
|
|
|
|
__PMC_EV_ALIAS("DATA_TLB_MISSES.DTLB_MISS_LD", IAP_EVENT_08H_05H) \
|
|
|
|
__PMC_EV_ALIAS("DATA_TLB_MISSES.DTLB_MISS_ST", IAP_EVENT_08H_06H) \
|
|
|
|
__PMC_EV_ALIAS("DATA_TLB_MISSES.UTLB_MISS_LD", IAP_EVENT_08H_09H) \
|
|
|
|
__PMC_EV_ALIAS("DELAYED_BYPASS.FP", IAP_EVENT_19H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DELAYED_BYPASS.LOAD", IAP_EVENT_19H_01H) \
|
|
|
|
__PMC_EV_ALIAS("DELAYED_BYPASS.SIMD", IAP_EVENT_19H_02H) \
|
|
|
|
__PMC_EV_ALIAS("DIV", IAP_EVENT_13H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DIV.AR", IAP_EVENT_13H_81H) \
|
|
|
|
__PMC_EV_ALIAS("DIV.S", IAP_EVENT_13H_01H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.ANY", IAP_EVENT_08H_01H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.L0_MISS_LD", IAP_EVENT_08H_04H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.MISS_LD", IAP_EVENT_08H_02H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.MISS_ST", IAP_EVENT_08H_08H) \
|
|
|
|
__PMC_EV_ALIAS("EIST_TRANS", IAP_EVENT_3AH_00H) \
|
|
|
|
__PMC_EV_ALIAS("ESP.ADDITIONS", IAP_EVENT_ABH_02H) \
|
|
|
|
__PMC_EV_ALIAS("ESP.SYNCH", IAP_EVENT_ABH_01H) \
|
|
|
|
__PMC_EV_ALIAS("EXT_SNOOP", IAP_EVENT_77H) \
|
|
|
|
__PMC_EV_ALIAS("FP_ASSIST", IAP_EVENT_11H_01H) \
|
|
|
|
__PMC_EV_ALIAS("FP_ASSIST.AR", IAP_EVENT_11H_81H) \
|
|
|
|
__PMC_EV_ALIAS("FP_COMP_OPS_EXE", IAP_EVENT_10H_00H) \
|
|
|
|
__PMC_EV_ALIAS("FP_MMX_TRANS_TO_FP", IAP_EVENT_CCH_02H) \
|
|
|
|
__PMC_EV_ALIAS("FP_MMX_TRANS_TO_MMX", IAP_EVENT_CCH_01H) \
|
|
|
|
__PMC_EV_ALIAS("HW_INT_RCV", IAP_EVENT_C8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ICACHE.ACCESSES", IAP_EVENT_80H_03H) \
|
|
|
|
__PMC_EV_ALIAS("ICACHE.MISSES", IAP_EVENT_80H_02H) \
|
|
|
|
__PMC_EV_ALIAS("IDLE_DURING_DIV", IAP_EVENT_18H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ILD_STALL", IAP_EVENT_87H_00H) \
|
|
|
|
__PMC_EV_ALIAS("INST_QUEUE.FULL", IAP_EVENT_83H_02H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.ANY_P", IAP_EVENT_C0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.LOADS", IAP_EVENT_C0H_01H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.OTHER", IAP_EVENT_C0H_04H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.STORES", IAP_EVENT_C0H_02H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.FLUSH", IAP_EVENT_82H_04H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.LARGE_MISS", IAP_EVENT_82H_10H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.MISSES", IAP_EVENT_82H_02H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.SMALL_MISS", IAP_EVENT_82H_02H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB_MISS_RETIRED", IAP_EVENT_C9H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_ALL_CACHE_REF", IAP_EVENT_43H_02H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_ALL_REF", IAP_EVENT_43H_01H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE.LD", IAP_EVENT_40H_21H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE.ST", IAP_EVENT_41H_22H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE_LOCK", IAP_EVENT_42H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE_LOCK_DURATION", IAP_EVENT_42H_10H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_M_EVICT", IAP_EVENT_47H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_M_REPL", IAP_EVENT_46H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_PEND_MISS", IAP_EVENT_48H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_PREFETCH.REQUESTS", IAP_EVENT_4EH_10H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_REPL", IAP_EVENT_45H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("L1D_SPLIT.LOADS", IAP_EVENT_49H_01H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_SPLIT.STORES", IAP_EVENT_49H_02H) \
|
|
|
|
__PMC_EV_ALIAS("L1I_MISSES", IAP_EVENT_81H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1I_READS", IAP_EVENT_80H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L2_ADS", IAP_EVENT_21H) \
|
|
|
|
__PMC_EV_ALIAS("L2_DBUS_BUSY_RD", IAP_EVENT_23H) \
|
|
|
|
__PMC_EV_ALIAS("L2_IFETCH", IAP_EVENT_28H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LD", IAP_EVENT_29H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LINES_IN", IAP_EVENT_24H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LINES_OUT", IAP_EVENT_26H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LOCK", IAP_EVENT_2BH) \
|
|
|
|
__PMC_EV_ALIAS("L2_M_LINES_IN", IAP_EVENT_25H) \
|
|
|
|
__PMC_EV_ALIAS("L2_M_LINES_OUT", IAP_EVENT_27H) \
|
|
|
|
__PMC_EV_ALIAS("L2_NO_REQ", IAP_EVENT_32H) \
|
|
|
|
__PMC_EV_ALIAS("L2_REJECT_BUSQ", IAP_EVENT_30H) \
|
|
|
|
__PMC_EV_ALIAS("L2_RQSTS", IAP_EVENT_2EH) \
|
|
|
|
__PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.I_STATE", IAP_EVENT_2EH_41H) \
|
|
|
|
__PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.MESI", IAP_EVENT_2EH_4FH) \
|
|
|
|
__PMC_EV_ALIAS("L2_ST", IAP_EVENT_2AH) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.L1D", IAP_EVENT_03H_20H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.OVERLAP_STORE", IAP_EVENT_03H_08H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.STA", IAP_EVENT_03H_02H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.STD", IAP_EVENT_03H_04H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.UNTIL_RETIRE", IAP_EVENT_03H_10H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_HIT_PRE", IAP_EVENT_4CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("MACHINE_CLEARS.SMC", IAP_EVENT_C3H_01H) \
|
|
|
|
__PMC_EV_ALIAS("MACHINE_NUKES.MEM_ORDER", IAP_EVENT_C3H_04H) \
|
|
|
|
__PMC_EV_ALIAS("MACRO_INSTS.ALL_DECODED", IAP_EVENT_AAH_03H) \
|
|
|
|
__PMC_EV_ALIAS("MACRO_INSTS.CISC_DECODED", IAP_EVENT_AAH_02H) \
|
|
|
|
__PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.RESET", IAP_EVENT_09H_01H) \
|
|
|
|
__PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.SUCCESS", IAP_EVENT_09H_02H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.DTLB_MISS", IAP_EVENT_CBH_04H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_HIT", IAP_EVENT_CBH_01H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_LINE_MISS", IAP_EVENT_CBH_08H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_MISS", IAP_EVENT_CBH_02H) \
|
|
|
|
__PMC_EV_ALIAS("MUL", IAP_EVENT_12H_00H) \
|
|
|
|
__PMC_EV_ALIAS("MUL.AR", IAP_EVENT_12H_81H) \
|
|
|
|
__PMC_EV_ALIAS("MUL.S", IAP_EVENT_12H_01H) \
|
|
|
|
__PMC_EV_ALIAS("PAGE_WALKS.CYCLES", IAP_EVENT_0CH_03H) \
|
|
|
|
__PMC_EV_ALIAS("PAGE_WALKS.WALKS", IAP_EVENT_0CH_03H) \
|
|
|
|
__PMC_EV_ALIAS("PREFETCH.PREFETCHNTA", IAP_EVENT_07H_08H) \
|
|
|
|
__PMC_EV_ALIAS("PREFETCH.PREFETCHT0", IAP_EVENT_07H_01H) \
|
|
|
|
__PMC_EV_ALIAS("PREFETCH.SW_L2", IAP_EVENT_07H_06H) \
|
|
|
|
__PMC_EV_ALIAS("PREF_RQSTS_DN", IAP_EVENT_F8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("PREF_RQSTS_UP", IAP_EVENT_F0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.ANY", IAP_EVENT_D2H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.FLAGS", IAP_EVENT_D2H_04H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.FPSW", IAP_EVENT_D2H_08H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.PARTIAL_CYCLES", IAP_EVENT_D2H_02H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.ROB_READ_PORT", IAP_EVENT_D2H_01H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.ANY", IAP_EVENT_DCH_1FH) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.BR_MISS_CLEAR", IAP_EVENT_DCH_10H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.FPCW", IAP_EVENT_DCH_08H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.LD_ST", IAP_EVENT_DCH_04H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.ROB_FULL", IAP_EVENT_DCH_01H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.RS_FULL", IAP_EVENT_DCH_02H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED", IAP_EVENT_A0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT0", IAP_EVENT_A1H_01H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT1", IAP_EVENT_A1H_02H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT2", IAP_EVENT_A1H_04H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT3", IAP_EVENT_A1H_08H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT4", IAP_EVENT_A1H_10H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT5", IAP_EVENT_A1H_20H) \
|
|
|
|
__PMC_EV_ALIAS("SB_DRAIN_CYCLES", IAP_EVENT_04H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SEGMENT_REG_LOADS.ANY", IAP_EVENT_06H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.ANY", IAP_EVENT_D5H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.DS", IAP_EVENT_D5H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.ES", IAP_EVENT_D5H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.FS", IAP_EVENT_D5H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.GS", IAP_EVENT_D5H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.ANY", IAP_EVENT_D4H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.DS", IAP_EVENT_D4H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.ES", IAP_EVENT_D4H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.FS", IAP_EVENT_D4H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.GS", IAP_EVENT_D4H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_ASSIST", IAP_EVENT_CDH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_DOUBLE", \
|
|
|
|
IAP_EVENT_CAH_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_SINGLE", \
|
|
|
|
IAP_EVENT_CAH_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_DOUBLE", \
|
|
|
|
IAP_EVENT_CAH_08H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_SINGLE", \
|
|
|
|
IAP_EVENT_CAH_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INSTR_RETIRED", IAP_EVENT_CEH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.ANY", IAP_EVENT_C7H_1FH) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_DOUBLE", IAP_EVENT_C7H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_SINGLE", IAP_EVENT_C7H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_DOUBLE", IAP_EVENT_C7H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_SINGLE", IAP_EVENT_C7H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.VECTOR", IAP_EVENT_C7H_10H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_SAT_INSTR_RETIRED", IAP_EVENT_CFH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_SAT_UOP_EXEC.AR", IAP_EVENT_B1H_80H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_SAT_UOP_EXEC.S", IAP_EVENT_B1H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOPS_EXEC.AR", IAP_EVENT_B0H_80H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOPS_EXEC.S", IAP_EVENT_B0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.ARITHMETIC.AR", IAP_EVENT_B3H_A0H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.ARITHMETIC.S", IAP_EVENT_B3H_20H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.LOGICAL.AR", IAP_EVENT_B3H_90H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.LOGICAL.S", IAP_EVENT_B3H_10H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.MUL.AR", IAP_EVENT_B3H_81H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.MUL.S", IAP_EVENT_B3H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.PACK.AR", IAP_EVENT_B3H_84H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.PACK.S", IAP_EVENT_B3H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.SHIFT.AR", IAP_EVENT_B3H_82H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.SHIFT.S", IAP_EVENT_B3H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.UNPACK.AR", IAP_EVENT_B3H_88H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.UNPACK.S", IAP_EVENT_B3H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SNOOP_STALL_DRV", IAP_EVENT_7EH) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_EXEC.L2", IAP_EVENT_07H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_EXEC.STORES", IAP_EVENT_07H_03H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_MISS.L1", IAP_EVENT_4BH_01H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_MISS.L2", IAP_EVENT_4BH_02H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_MISS.NTA", IAP_EVENT_4BH_00H) \
|
|
|
|
__PMC_EV_ALIAS("STORE_BLOCK.ORDER", IAP_EVENT_04H_02H) \
|
|
|
|
__PMC_EV_ALIAS("STORE_BLOCK.SNOOP", IAP_EVENT_04H_08H) \
|
|
|
|
__PMC_EV_ALIAS("STORE_FORWARDS.GOOD", IAP_EVENT_02H_81H) \
|
|
|
|
__PMC_EV_ALIAS("THERMAL_TRIP", IAP_EVENT_3BH_C0H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.ANY", IAP_EVENT_C2H_10H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.FUSED", IAP_EVENT_C2H_07H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.LD_IND_BR", IAP_EVENT_C2H_01H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.MACRO_FUSION", IAP_EVENT_C2H_04H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.NON_FUSED", IAP_EVENT_C2H_08H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.STD_STA", IAP_EVENT_C2H_02H) \
|
|
|
|
__PMC_EV_ALIAS("X87_COMP_OPS_EXE.ANY.AR", IAP_EVENT_10H_81H) \
|
|
|
|
__PMC_EV_ALIAS("X87_COMP_OPS_EXE.ANY.S", IAP_EVENT_10H_01H) \
|
|
|
|
__PMC_EV_ALIAS("X87_OPS_RETIRED.ANY", IAP_EVENT_C1H_FEH) \
|
|
|
|
__PMC_EV_ALIAS("X87_OPS_RETIRED.FXCH", IAP_EVENT_C1H_01H)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Aliases for Core PMC events.
|
|
|
|
*/
|
|
|
|
#define __PMC_EV_ALIAS_CORE() \
|
|
|
|
__PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \
|
|
|
|
__PMC_EV_ALIAS("BAClears", IAP_EVENT_E6H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BTB_Misses", IAP_EVENT_E2H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_BAC_Missp_Exec", IAP_EVENT_8AH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Bogus", IAP_EVENT_E4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Call_Exec", IAP_EVENT_92H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Call_Missp_Exec", IAP_EVENT_93H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Cnd_Exec", IAP_EVENT_8BH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Cnd_Missp_Exec", IAP_EVENT_8CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Ind_Call_Exec", IAP_EVENT_94H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Ind_Exec", IAP_EVENT_8DH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Ind_Missp_Exec", IAP_EVENT_8EH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Inst_Exec", IAP_EVENT_88H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Instr_Decoded", IAP_EVENT_E0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Instr_Ret", IAP_EVENT_C4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_MisPred_Ret", IAP_EVENT_C5H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_MisPred_Taken_Ret", IAP_EVENT_CAH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Missp_Exec", IAP_EVENT_89H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Ret_BAC_Missp_Exec", IAP_EVENT_91H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Ret_Exec", IAP_EVENT_8FH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Ret_Missp_Exec", IAP_EVENT_90H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Br_Taken_Ret", IAP_EVENT_C9H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_BNR_Clocks", IAP_EVENT_61H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_DRDY_Clocks", IAP_EVENT_62H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Data_Rcv", IAP_EVENT_64H_40H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Locks_Clocks", IAP_EVENT_63H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Not_In_Use", IAP_EVENT_7DH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Req_Outstanding", IAP_EVENT_60H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Snoop_Stall", IAP_EVENT_7EH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Snoops", IAP_EVENT_77H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Any", IAP_EVENT_70H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Brd", IAP_EVENT_65H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Burst", IAP_EVENT_6EH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Def", IAP_EVENT_6DH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_IO", IAP_EVENT_6CH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Ifetch", IAP_EVENT_68H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Inval", IAP_EVENT_69H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Mem", IAP_EVENT_6FH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_P", IAP_EVENT_6BH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_Pwr", IAP_EVENT_6AH) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_RFO", IAP_EVENT_66H) \
|
|
|
|
__PMC_EV_ALIAS("Bus_Trans_WB", IAP_EVENT_67H) \
|
|
|
|
__PMC_EV_ALIAS("Cycles_Div_Busy", IAP_EVENT_14H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Cycles_Int_Masked", IAP_EVENT_C6H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Cycles_Int_Pending_Masked", IAP_EVENT_C7H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DCU_Snoop_To_Share", IAP_EVENT_78H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_Cache_LD", IAP_EVENT_40H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_Cache_Lock", IAP_EVENT_42H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_Cache_ST", IAP_EVENT_41H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_M_Evict", IAP_EVENT_47H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_M_Repl", IAP_EVENT_46H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_Pend_Miss", IAP_EVENT_48H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DCache_Repl", IAP_EVENT_45H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("Data_Mem_Cache_Ref", IAP_EVENT_44H_02H) \
|
|
|
|
__PMC_EV_ALIAS("Data_Mem_Ref", IAP_EVENT_43H_01H) \
|
|
|
|
__PMC_EV_ALIAS("Dbus_Busy", IAP_EVENT_22H) \
|
|
|
|
__PMC_EV_ALIAS("Dbus_Busy_Rd", IAP_EVENT_23H) \
|
|
|
|
__PMC_EV_ALIAS("Div", IAP_EVENT_13H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Dtlb_Miss", IAP_EVENT_49H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ESP_Uops", IAP_EVENT_D7H_00H) \
|
|
|
|
__PMC_EV_ALIAS("EST_Trans", IAP_EVENT_3AH) \
|
|
|
|
__PMC_EV_ALIAS("FP_Assist", IAP_EVENT_11H_00H) \
|
|
|
|
__PMC_EV_ALIAS("FP_Comp_Instr_Ret", IAP_EVENT_C1H_00H) \
|
|
|
|
__PMC_EV_ALIAS("FP_Comps_Op_Exe", IAP_EVENT_10H_00H) \
|
|
|
|
__PMC_EV_ALIAS("FP_MMX_Trans", IAP_EVENT_CCH_01H) \
|
|
|
|
__PMC_EV_ALIAS("Fused_Ld_Uops_Ret", IAP_EVENT_DAH_01H) \
|
|
|
|
__PMC_EV_ALIAS("Fused_St_Uops_Ret", IAP_EVENT_DAH_02H) \
|
|
|
|
__PMC_EV_ALIAS("Fused_Uops_Ret", IAP_EVENT_DAH_00H) \
|
|
|
|
__PMC_EV_ALIAS("HW_Int_Rx", IAP_EVENT_C8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ICache_Misses", IAP_EVENT_81H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ICache_Reads", IAP_EVENT_80H_00H) \
|
|
|
|
__PMC_EV_ALIAS("IFU_Mem_Stall", IAP_EVENT_86H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ILD_Stall", IAP_EVENT_87H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB_Misses", IAP_EVENT_85H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Instr_Decoded", IAP_EVENT_D0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Instr_Ret", IAP_EVENT_C0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1_Pref_Req", IAP_EVENT_4FH_00H) \
|
|
|
|
__PMC_EV_ALIAS("L2_ADS", IAP_EVENT_21H) \
|
|
|
|
__PMC_EV_ALIAS("L2_IFetch", IAP_EVENT_28H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LD", IAP_EVENT_29H) \
|
|
|
|
__PMC_EV_ALIAS("L2_Lines_In", IAP_EVENT_24H) \
|
|
|
|
__PMC_EV_ALIAS("L2_Lines_Out", IAP_EVENT_26H) \
|
|
|
|
__PMC_EV_ALIAS("L2_M_Lines_In", IAP_EVENT_25H) \
|
|
|
|
__PMC_EV_ALIAS("L2_M_Lines_Out", IAP_EVENT_27H) \
|
|
|
|
__PMC_EV_ALIAS("L2_No_Request_Cycles", IAP_EVENT_32H) \
|
|
|
|
__PMC_EV_ALIAS("L2_Reject_Cycles", IAP_EVENT_30H) \
|
|
|
|
__PMC_EV_ALIAS("L2_Rqsts", IAP_EVENT_2EH) \
|
|
|
|
__PMC_EV_ALIAS("L2_ST", IAP_EVENT_2AH) \
|
|
|
|
__PMC_EV_ALIAS("LD_Blocks", IAP_EVENT_03H_00H) \
|
|
|
|
__PMC_EV_ALIAS("LLC_Misses", IAP_EVENT_2EH_41H) \
|
|
|
|
__PMC_EV_ALIAS("LLC_Reference", IAP_EVENT_2EH_4FH) \
|
|
|
|
__PMC_EV_ALIAS("MMX_Assist", IAP_EVENT_CDH_00H) \
|
|
|
|
__PMC_EV_ALIAS("MMX_FP_Trans", IAP_EVENT_CCH_00H) \
|
|
|
|
__PMC_EV_ALIAS("MMX_Instr_Exec", IAP_EVENT_B0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("MMX_Instr_Ret", IAP_EVENT_CEH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Misalign_Mem_Ref", IAP_EVENT_05H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Mul", IAP_EVENT_12H_00H) \
|
|
|
|
__PMC_EV_ALIAS("NonHlt_Ref_Cycles", IAP_EVENT_3CH_01H) \
|
|
|
|
__PMC_EV_ALIAS("Pref_Rqsts_Dn", IAP_EVENT_F8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Pref_Rqsts_Up", IAP_EVENT_F0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Resource_Stall", IAP_EVENT_A2H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SD_Drains", IAP_EVENT_04H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_DP_P_Comp_Ret", IAP_EVENT_D9H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_DP_P_Ret", IAP_EVENT_D8H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_DP_S_Comp_Ret", IAP_EVENT_D9H_03H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_DP_S_Ret", IAP_EVENT_D8H_03H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_SP_P_Comp_Ret", IAP_EVENT_D9H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_SP_Ret", IAP_EVENT_D8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_SP_S_Comp_Ret", IAP_EVENT_D9H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_FP_SP_S_Ret", IAP_EVENT_D8H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_128_Ret", IAP_EVENT_D8H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Pari_Exec", IAP_EVENT_B3H_20H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Pck_Exec", IAP_EVENT_B3H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Plog_Exec", IAP_EVENT_B3H_10H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Pmul_Exec", IAP_EVENT_B3H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Psft_Exec", IAP_EVENT_B3H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Sat_Exec", IAP_EVENT_B1H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_Int_Upck_Exec", IAP_EVENT_B3H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SMC_Detected", IAP_EVENT_C3H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_NTStores_Miss", IAP_EVENT_4BH_03H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_NTStores_Ret", IAP_EVENT_07H_03H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PrefNta_Miss", IAP_EVENT_4BH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PrefNta_Ret", IAP_EVENT_07H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PrefT1_Miss", IAP_EVENT_4BH_01H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PrefT1_Ret", IAP_EVENT_07H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PrefT2_Miss", IAP_EVENT_4BH_02H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PrefT2_Ret", IAP_EVENT_07H_02H) \
|
|
|
|
__PMC_EV_ALIAS("Seg_Reg_Loads", IAP_EVENT_06H_00H) \
|
|
|
|
__PMC_EV_ALIAS("Serial_Execution_Cycles", IAP_EVENT_3CH_02H) \
|
|
|
|
__PMC_EV_ALIAS("Thermal_Trip", IAP_EVENT_3BH_C0H) \
|
|
|
|
__PMC_EV_ALIAS("Unfusion", IAP_EVENT_DBH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Unhalted_Core_Cycles", IAP_EVENT_3CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("Uops_Ret", IAP_EVENT_C2H_00H)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Aliases for Core2 PMC events.
|
|
|
|
*/
|
|
|
|
#define __PMC_EV_ALIAS_CORE2() \
|
|
|
|
__PMC_EV_ALIAS_INTEL_ARCHITECTURAL() \
|
|
|
|
__PMC_EV_ALIAS("BACLEARS", IAP_EVENT_E6H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BOGUS_BR", IAP_EVENT_E4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_BAC_MISSP_EXEC", IAP_EVENT_8AH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CALL_EXEC", IAP_EVENT_92H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CALL_MISSP_EXEC", IAP_EVENT_93H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CND_EXEC", IAP_EVENT_8BH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_CND_MISSP_EXEC", IAP_EVENT_8CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_IND_CALL_EXEC", IAP_EVENT_94H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_IND_EXEC", IAP_EVENT_8DH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_IND_MISSP_EXEC", IAP_EVENT_8EH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_DECODED", IAP_EVENT_E0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_EXEC", IAP_EVENT_88H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.ANY", IAP_EVENT_C4H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED", IAP_EVENT_C5H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_NOT_TAKEN", \
|
|
|
|
IAP_EVENT_C4H_02H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.MISPRED_TAKEN", \
|
|
|
|
IAP_EVENT_C4H_08H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.PRED_NOT_TAKEN", \
|
|
|
|
IAP_EVENT_C4H_01H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.PRED_TAKEN", \
|
|
|
|
IAP_EVENT_C4H_04H) \
|
|
|
|
__PMC_EV_ALIAS("BR_INST_RETIRED.TAKEN", IAP_EVENT_C4H_0CH) \
|
|
|
|
__PMC_EV_ALIAS("BR_MISSP_EXEC", IAP_EVENT_89H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_RET_BAC_MISSP_EXEC", IAP_EVENT_91H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_RET_EXEC", IAP_EVENT_8FH_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_RET_MISSP_EXEC", IAP_EVENT_90H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_TKN_BUBBLE_1", IAP_EVENT_97H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BR_TKN_BUBBLE_2", IAP_EVENT_98H_00H) \
|
|
|
|
__PMC_EV_ALIAS("BUSQ_EMPTY", IAP_EVENT_7DH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_BNR_DRV", IAP_EVENT_61H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_DATA_RCV", IAP_EVENT_64H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_DRDY_CLOCKS", IAP_EVENT_62H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_HITM_DRV", IAP_EVENT_7BH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_HIT_DRV", IAP_EVENT_7AH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_IO_WAIT", IAP_EVENT_7FH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_LOCK_CLOCKS", IAP_EVENT_63H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_REQUEST_OUTSTANDING", \
|
|
|
|
IAP_EVENT_60H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_ANY", IAP_EVENT_70H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_BRD", IAP_EVENT_65H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_BURST", IAP_EVENT_6EH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_DEF", IAP_EVENT_6DH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_IFETCH", IAP_EVENT_68H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_INVAL", IAP_EVENT_69H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_IO", IAP_EVENT_6CH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_MEM", IAP_EVENT_6FH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_P", IAP_EVENT_6BH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_PWR", IAP_EVENT_6AH) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_RFO", IAP_EVENT_66H) \
|
|
|
|
__PMC_EV_ALIAS("BUS_TRANS_WB", IAP_EVENT_67H) \
|
|
|
|
__PMC_EV_ALIAS("CMP_SNOOP", IAP_EVENT_78H) \
|
|
|
|
__PMC_EV_ALIAS("CPU_CLK_UNHALTED.BUS", IAP_EVENT_3CH_01H) \
|
|
|
|
__PMC_EV_ALIAS("CPU_CLK_UNHALTED.CORE_P", \
|
|
|
|
IAP_EVENT_3CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("CPU_CLK_UNHALTED.NO_OTHER", \
|
|
|
|
IAP_EVENT_3CH_02H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_DIV_BUSY", IAP_EVENT_14H_00H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_INT_MASKED", IAP_EVENT_C6H_01H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_INT_PENDING_AND_MASKED", \
|
|
|
|
IAP_EVENT_C6H_02H) \
|
|
|
|
__PMC_EV_ALIAS("CYCLES_L1I_MEM_STALLED", IAP_EVENT_86H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DELAYED_BYPASS.FP", IAP_EVENT_19H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DELAYED_BYPASS.LOAD", IAP_EVENT_19H_01H) \
|
|
|
|
__PMC_EV_ALIAS("DELAYED_BYPASS.SIMD", IAP_EVENT_19H_02H) \
|
|
|
|
__PMC_EV_ALIAS("DIV", IAP_EVENT_13H_00H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.ANY", IAP_EVENT_08H_01H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.L0_MISS_LD", IAP_EVENT_08H_04H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.MISS_LD", IAP_EVENT_08H_02H) \
|
|
|
|
__PMC_EV_ALIAS("DTLB_MISSES.MISS_ST", IAP_EVENT_08H_08H) \
|
|
|
|
__PMC_EV_ALIAS("EIST_TRANS", IAP_EVENT_3AH_00H) \
|
|
|
|
__PMC_EV_ALIAS("ESP.ADDITIONS", IAP_EVENT_ABH_02H) \
|
|
|
|
__PMC_EV_ALIAS("ESP.SYNCH", IAP_EVENT_ABH_01H) \
|
|
|
|
__PMC_EV_ALIAS("EXT_SNOOP", IAP_EVENT_77H) \
|
|
|
|
__PMC_EV_ALIAS("FP_ASSIST", IAP_EVENT_11H_00H) \
|
|
|
|
__PMC_EV_ALIAS("FP_COMP_OPS_EXE", IAP_EVENT_10H_00H) \
|
|
|
|
__PMC_EV_ALIAS("FP_MMX_TRANS_TO_FP", IAP_EVENT_CCH_02H) \
|
|
|
|
__PMC_EV_ALIAS("FP_MMX_TRANS_TO_MMX", IAP_EVENT_CCH_01H) \
|
|
|
|
__PMC_EV_ALIAS("HW_INT_RCV", IAP_EVENT_C8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("IDLE_DURING_DIV", IAP_EVENT_18H_00H) \
|
|
|
|
__PMC_EV_ALIAS("ILD_STALL", IAP_EVENT_87H_00H) \
|
|
|
|
__PMC_EV_ALIAS("INST_QUEUE.FULL", IAP_EVENT_83H_02H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.ANY_P", IAP_EVENT_C0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.LOADS", IAP_EVENT_C0H_01H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.OTHER", IAP_EVENT_C0H_04H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.STORES", IAP_EVENT_C0H_02H) \
|
|
|
|
__PMC_EV_ALIAS("INST_RETIRED.VM_H", IAP_EVENT_C0H_08H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.FLUSH", IAP_EVENT_82H_40H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.LARGE_MISS", IAP_EVENT_82H_10H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.MISSES", IAP_EVENT_82H_12H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB.SMALL_MISS", IAP_EVENT_82H_02H) \
|
|
|
|
__PMC_EV_ALIAS("ITLB_MISS_RETIRED", IAP_EVENT_C9H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_ALL_CACHE_REF", IAP_EVENT_43H_02H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_ALL_REF", IAP_EVENT_43H_01H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE_LD", IAP_EVENT_40H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE_LOCK", IAP_EVENT_42H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE_LOCK_DURATION", IAP_EVENT_42H_10H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_CACHE_ST", IAP_EVENT_41H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_M_EVICT", IAP_EVENT_47H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_M_REPL", IAP_EVENT_46H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_PEND_MISS", IAP_EVENT_48H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_PREFETCH.REQUESTS", IAP_EVENT_4EH_10H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_REPL", IAP_EVENT_45H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("L1D_SPLIT.LOADS", IAP_EVENT_49H_01H) \
|
|
|
|
__PMC_EV_ALIAS("L1D_SPLIT.STORES", IAP_EVENT_49H_02H) \
|
|
|
|
__PMC_EV_ALIAS("L1I_MISSES", IAP_EVENT_81H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L1I_READS", IAP_EVENT_80H_00H) \
|
|
|
|
__PMC_EV_ALIAS("L2_ADS", IAP_EVENT_21H) \
|
|
|
|
__PMC_EV_ALIAS("L2_DBUS_BUSY_RD", IAP_EVENT_23H) \
|
|
|
|
__PMC_EV_ALIAS("L2_IFETCH", IAP_EVENT_28H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LD", IAP_EVENT_29H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LINES_IN", IAP_EVENT_24H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LINES_OUT", IAP_EVENT_26H) \
|
|
|
|
__PMC_EV_ALIAS("L2_LOCK", IAP_EVENT_2BH) \
|
|
|
|
__PMC_EV_ALIAS("L2_M_LINES_IN", IAP_EVENT_25H) \
|
|
|
|
__PMC_EV_ALIAS("L2_M_LINES_OUT", IAP_EVENT_27H) \
|
|
|
|
__PMC_EV_ALIAS("L2_NO_REQ", IAP_EVENT_32H) \
|
|
|
|
__PMC_EV_ALIAS("L2_REJECT_BUSQ", IAP_EVENT_30H) \
|
|
|
|
__PMC_EV_ALIAS("L2_RQSTS", IAP_EVENT_2EH) \
|
|
|
|
__PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.I_STATE", \
|
|
|
|
IAP_EVENT_2EH_41H) \
|
|
|
|
__PMC_EV_ALIAS("L2_RQSTS.SELF.DEMAND.MESI", \
|
|
|
|
IAP_EVENT_2EH_4FH) \
|
|
|
|
__PMC_EV_ALIAS("L2_ST", IAP_EVENT_2AH) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.L1D", IAP_EVENT_03H_20H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.OVERLAP_STORE", \
|
|
|
|
IAP_EVENT_03H_08H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.STA", IAP_EVENT_03H_02H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.STD", IAP_EVENT_03H_04H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_BLOCK.UNTIL_RETIRE", IAP_EVENT_03H_10H) \
|
|
|
|
__PMC_EV_ALIAS("LOAD_HIT_PRE", IAP_EVENT_4CH_00H) \
|
|
|
|
__PMC_EV_ALIAS("MACHINE_NUKES.MEM_ORDER", IAP_EVENT_C3H_04H) \
|
|
|
|
__PMC_EV_ALIAS("MACHINE_NUKES.SMC", IAP_EVENT_C3H_01H) \
|
|
|
|
__PMC_EV_ALIAS("MACRO_INSTS.CISC_DECODED", IAP_EVENT_AAH_08H) \
|
|
|
|
__PMC_EV_ALIAS("MACRO_INSTS.DECODED", IAP_EVENT_AAH_01H) \
|
|
|
|
__PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.RESET", \
|
|
|
|
IAP_EVENT_09H_01H) \
|
|
|
|
__PMC_EV_ALIAS("MEMORY_DISAMBIGUATION.SUCCESS", \
|
|
|
|
IAP_EVENT_09H_02H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.DTLB_MISS", \
|
|
|
|
IAP_EVENT_CBH_10H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L1D_LINE_MISS", \
|
|
|
|
IAP_EVENT_CBH_02H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L1D_MISS", \
|
|
|
|
IAP_EVENT_CBH_01H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_LINE_MISS", \
|
|
|
|
IAP_EVENT_CBH_08H) \
|
|
|
|
__PMC_EV_ALIAS("MEM_LOAD_RETIRED.L2_MISS", \
|
|
|
|
IAP_EVENT_CBH_04H) \
|
|
|
|
__PMC_EV_ALIAS("MUL", IAP_EVENT_12H_00H) \
|
|
|
|
__PMC_EV_ALIAS("PAGE_WALKS.COUNT", IAP_EVENT_0CH_01H) \
|
|
|
|
__PMC_EV_ALIAS("PAGE_WALKS.CYCLES", IAP_EVENT_0CH_02H) \
|
|
|
|
__PMC_EV_ALIAS("PREF_RQSTS_DN", IAP_EVENT_F8H_00H) \
|
|
|
|
__PMC_EV_ALIAS("PREF_RQSTS_UP", IAP_EVENT_F0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.ANY", IAP_EVENT_D2H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.FLAGS", IAP_EVENT_D2H_04H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.FPSW", IAP_EVENT_D2H_08H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.OTHER_SERIALIZATION_STALLS", \
|
|
|
|
IAP_EVENT_D2H_10H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.PARTIAL_CYCLES", \
|
|
|
|
IAP_EVENT_D2H_02H) \
|
|
|
|
__PMC_EV_ALIAS("RAT_STALLS.ROB_READ_PORT", \
|
|
|
|
IAP_EVENT_D2H_01H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.ANY", IAP_EVENT_DCH_1FH) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.BR_MISS_CLEAR", \
|
|
|
|
IAP_EVENT_DCH_10H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.FPCW", IAP_EVENT_DCH_08H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.LD_ST", IAP_EVENT_DCH_04H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.ROB_FULL", \
|
|
|
|
IAP_EVENT_DCH_01H) \
|
|
|
|
__PMC_EV_ALIAS("RESOURCE_STALLS.RS_FULL", IAP_EVENT_DCH_02H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED", IAP_EVENT_A0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT0", IAP_EVENT_A1H_01H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT1", IAP_EVENT_A1H_02H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT2", IAP_EVENT_A1H_04H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT3", IAP_EVENT_A1H_08H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT4", IAP_EVENT_A1H_10H) \
|
|
|
|
__PMC_EV_ALIAS("RS_UOPS_DISPATCHED.PORT5", IAP_EVENT_A1H_20H) \
|
|
|
|
__PMC_EV_ALIAS("SB_DRAIN_CYCLES", IAP_EVENT_04H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SEGMENT_REG_LOADS", IAP_EVENT_06H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.ANY", IAP_EVENT_D5H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.DS", IAP_EVENT_D5H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.ES", IAP_EVENT_D5H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.FS", IAP_EVENT_D5H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_REG_RENAMES.GS", IAP_EVENT_D5H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.ANY", IAP_EVENT_D4H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.DS", IAP_EVENT_D4H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.ES", IAP_EVENT_D4H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.FS", IAP_EVENT_D4H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SEG_RENAME_STALLS.GS", IAP_EVENT_D4H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_ASSIST", IAP_EVENT_CDH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_DOUBLE", \
|
|
|
|
IAP_EVENT_CAH_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.PACKED_SINGLE", \
|
|
|
|
IAP_EVENT_CAH_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_DOUBLE", \
|
|
|
|
IAP_EVENT_CAH_08H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_COMP_INST_RETIRED.SCALAR_SINGLE", \
|
|
|
|
IAP_EVENT_CAH_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INSTR_RETIRED", IAP_EVENT_CEH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.ANY", IAP_EVENT_C7H_1FH) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_DOUBLE", \
|
|
|
|
IAP_EVENT_C7H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.PACKED_SINGLE", \
|
|
|
|
IAP_EVENT_C7H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_DOUBLE", \
|
|
|
|
IAP_EVENT_C7H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.SCALAR_SINGLE", \
|
|
|
|
IAP_EVENT_C7H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_INST_RETIRED.VECTOR", IAP_EVENT_C7H_10H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_SAT_INSTR_RETIRED", IAP_EVENT_CFH_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_SAT_UOP_EXEC", IAP_EVENT_B1H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOPS_EXEC", IAP_EVENT_B0H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.ARITHMETIC", IAP_EVENT_B3H_20H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.LOGICAL", IAP_EVENT_B3H_10H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.MUL", IAP_EVENT_B3H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.PACK", IAP_EVENT_B3H_04H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.SHIFT", IAP_EVENT_B3H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SIMD_UOP_TYPE_EXEC.UNPACK", IAP_EVENT_B3H_08H) \
|
|
|
|
__PMC_EV_ALIAS("SNOOP_STALL_DRV", IAP_EVENT_7EH) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_EXEC.L1", IAP_EVENT_07H_01H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_EXEC.L2", IAP_EVENT_07H_02H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_EXEC.NTA", IAP_EVENT_07H_00H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_EXEC.STORES", IAP_EVENT_07H_03H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_MISS.L1", IAP_EVENT_4BH_01H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_MISS.L2", IAP_EVENT_4BH_02H) \
|
|
|
|
__PMC_EV_ALIAS("SSE_PRE_MISS.NTA", IAP_EVENT_4BH_00H) \
|
|
|
|
__PMC_EV_ALIAS("STORE_BLOCK.ORDER", IAP_EVENT_04H_02H) \
|
|
|
|
__PMC_EV_ALIAS("STORE_BLOCK.SNOOP", IAP_EVENT_04H_08H) \
|
|
|
|
__PMC_EV_ALIAS("THERMAL_TRIP", IAP_EVENT_3BH_C0H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.ANY", IAP_EVENT_C2H_0FH) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.FUSED", IAP_EVENT_C2H_07H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.LD_IND_BR", IAP_EVENT_C2H_01H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.MACRO_FUSION", IAP_EVENT_C2H_04H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.NON_FUSED", IAP_EVENT_C2H_08H) \
|
|
|
|
__PMC_EV_ALIAS("UOPS_RETIRED.STD_STA", IAP_EVENT_C2H_02H) \
|
|
|
|
__PMC_EV_ALIAS("X87_OPS_RETIRED.ANY", IAP_EVENT_C1H_FEH) \
|
|
|
|
__PMC_EV_ALIAS("X87_OPS_RETIRED.FXCH", IAP_EVENT_C1H_01H)
|
2008-10-09 14:55:45 +00:00
|
|
|
|
2005-06-09 19:45:09 +00:00
|
|
|
/* timestamp counters. */
|
|
|
|
#define __PMC_EV_TSC() \
|
2008-10-09 14:55:45 +00:00
|
|
|
__PMC_EV(TSC, TSC)
|
|
|
|
|
|
|
|
#define PMC_EV_TSC_FIRST PMC_EV_TSC_TSC
|
|
|
|
#define PMC_EV_TSC_LAST PMC_EV_TSC_TSC
|
2005-06-09 19:45:09 +00:00
|
|
|
|
2008-10-09 14:55:45 +00:00
|
|
|
/*
|
|
|
|
* All known PMC events.
|
|
|
|
*
|
|
|
|
* PMC event numbers are allocated sparsely to allow new PMC events to
|
|
|
|
* be added to a PMC class without breaking ABI compatibility. The
|
|
|
|
* current allocation scheme is:
|
|
|
|
*
|
|
|
|
* START #EVENTS DESCRIPTION
|
|
|
|
* 0 0x1000 Reserved
|
|
|
|
* 0x1000 0x0001 TSC
|
|
|
|
* 0x2000 0x0080 AMD K7 events
|
|
|
|
* 0x2080 0x0100 AMD K8 events
|
|
|
|
* 0x10000 0x0080 INTEL architectural fixed-function events
|
|
|
|
* 0x10080 0x0F80 INTEL architectural programmable events
|
|
|
|
* 0x11000 0x0080 INTEL Pentium 4 events
|
|
|
|
* 0x11080 0x0080 INTEL Pentium MMX events
|
|
|
|
* 0x11100 0x0100 INTEL Pentium Pro/P-II/P-III/Pentium-M events
|
|
|
|
*/
|
|
|
|
#define __PMC_EVENTS() \
|
|
|
|
__PMC_EV_BLOCK(TSC, 0x01000) \
|
|
|
|
__PMC_EV_TSC() \
|
|
|
|
__PMC_EV_BLOCK(K7, 0x2000) \
|
|
|
|
__PMC_EV_K7() \
|
|
|
|
__PMC_EV_BLOCK(K8, 0x2080) \
|
|
|
|
__PMC_EV_K8() \
|
|
|
|
__PMC_EV_BLOCK(IAF, 0x10000) \
|
|
|
|
__PMC_EV_IAF() \
|
|
|
|
__PMC_EV_BLOCK(IAP, 0x10080) \
|
|
|
|
__PMC_EV_IAP() \
|
|
|
|
__PMC_EV_BLOCK(P4, 0x11000) \
|
|
|
|
__PMC_EV_P4() \
|
|
|
|
__PMC_EV_BLOCK(P5, 0x11080) \
|
|
|
|
__PMC_EV_P5() \
|
|
|
|
__PMC_EV_BLOCK(P6, 0x11100) \
|
|
|
|
__PMC_EV_P6()
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
#define PMC_EVENT_FIRST PMC_EV_TSC_TSC
|
2008-10-09 14:55:45 +00:00
|
|
|
#define PMC_EVENT_LAST PMC_EV_P6_LAST
|
2005-06-09 19:45:09 +00:00
|
|
|
|
|
|
|
#endif /* _DEV_HWPMC_PMC_EVENTS_H_ */
|