Windows-Server-2003/base/hals/halia64/ia64/mckinley.h

564 lines
32 KiB
C

#ifndef MCKINLEY_H_INCLUDED
#define MCKINLEY_H_INCLUDED
/*++
Copyright (c) 1989-2002 Microsoft Corporation
Component Name:
HALIA64
Module Name:
mckinley.h
Abstract:
This header file presents IA64 McKinley definitions.
Like profiling definitions.
Author:
David N. Cutler (davec) 5-Mar-1989
Environment:
Kernel mode.
Revision History:
12/20/2001 Thierry Fevrier (v-thief@microsoft.com):
Initial version
--*/
//
// McKinley Monitored Events:
//
typedef enum _MCKINLEY_MONITOR_EVENT { // = 0x##, // McKinley PMU ERS Event Name:
McKinleyMonitoredEventMinimum = 0x00,
McKinleyBackEndBubbles = 0x00, // "BACK_END_BUBBLE"
McKinleyBackEndRSEBubbles = 0x01, // "BE_RSE_BUBBLE"
McKinleyRSELoadUnderflowCycles = 0x01, // "BE_RSE_BUBBLE.underflow"
McKinleyBackEndEXEBubbles = 0x02, // "BE_EXE_BUBBLE"
McKinleyFPTrueSirStalls = 0x03, // "FP_TRUE_SIRSTALL"
McKinleyBackEndFlushBubbles = 0x04, // "BE_FLUSH_BUBBLE",
McKinleyFPFalseSirStalls = 0x05, // "FP_FALSE_SIRSTALL",
McKinleyFPFailedFchkf = 0x06, // "FP_FAILED_FCHKF",
McKinleyISATransitions = 0x07, // "ISA_TRANSITIONS",
McKinleyInstRetired = 0x08, // "IA64_INSTS_RETIRED.u",
McKinleyTaggedInstRetired = 0x08, // "IA64_TAGGED_INSTRS_RETIRED",
McKinleyCodeDebugRegisterMatches = 0x08, // "CODE_DEBUG_REGISTER_MATCHES",
McKinleyFPOperationsRetired = 0x09, // "FPOPS_RETIRED", // Weighted sum of all FP ops
McKinleyFPFlushesToZero = 0x0b, // "FP_FLUSH_TO_ZERO",
McKinleyBranchEventsWithEAR = 0x11, // "BRANCH_EVENT,BRANCH_EAR_EVENTS",
McKinleyCpuCycles = 0x12, // "CPU_CYCLES",
McKinleyCpuCPLChanges = 0x13, // "CPU_CPL_CHANGES",
McKinleyRSEAccesses = 0x20, // "RSE_REFERENCES_RETIRED",
McKinleyRSEDirtyRegs0 = 0x24, // "RSE_DIRTY_REGS0",
McKinleyRSECurrentRegs0 = 0x26, // "RSE_CURRENT_REGS0",
McKinleyRSEDirtyRegs1 = 0x28, // "RSE_DIRTY_REGS1",
McKinleyRSEDirtyRegs2 = 0x29, // "RSE_DIRTY_REGS2",
McKinleyRSECurrentRegs1 = 0x2a, // "RSE_CURRENT_REGS1",
McKinleyRSECurrentRegs2 = 0x2b, // "RSE_CURRENT_REGS2",
McKinleyDataTLBHPWRetiredInserts = 0x2c, // "DTLB_INSERTS_HPW_RETIRED",
McKinleyVHPTDataReferences = 0x2d, // "VHPT_DATA_REFERENCES",
McKinleyRSEOperations = 0x32, // "RSE_EVENT_RETIRED",
McKinleyL1InstReads = 0x40, // "L0I_READS",
McKinleyInstTLBReferences = 0x40, // "ITLB_REFERENCES",
McKinleyL1InstFills = 0x41, // "L0I_FILLS",
McKinleyL1InstMisses = 0x42, // "L0I_MISSES",
McKinleyL1InstEAREvents = 0x43, // "L0I_EAR_EVENTS",
McKinleyL1InstPrefetches = 0x44, // "L0I_IPREFETCHES",
McKinleyL2InstPrefetches = 0x45, // "L1_INST_PREFETCHES",
McKinleyISBBundlePairs = 0x46, // "ISB_BINPAIRS_IN",
McKinleyInstTLBDemandFetchMisses = 0x47, // "ITLB_MISSES_FETCH",
McKinleyInstTLBHPWInserts = 0x48, // "ITLB_INSERTS_HPW",
McKinleyDispersalCyclesStalled = 0x49, // "DISP_STALLED",
McKinleyL1InstSnoops = 0x4a, // "L0I_SNOOP",
McKinleyL1InstPurges = 0x4b, // "L0I_PURGE",
McKinleyTaggedInstructionsAtRotate = 0x4c, // "TAGGED_INSTRUCTION_AT_ROTATE",
McKinleyInstDispersed = 0x4d, // "INST_DISPERSED",
McKinleySyllablesNotDispersed = 0x4e, // "SYLL_NOT_DISPERSED",
McKinleySyllablesOvercount = 0x4f, // "SYLL_OVERCOUNT",
McKinleyInstNOPRetired = 0x50, // "NOPS_RETIRED",
McKinleyInstPredicateSquashedRetired = 0x51, // "PREDICATE_SQUASHED_RETIRED",
McKinleyDataDebugRegisterFaults = 0x52, // "DATA_DEBUG_REGISTER_FAULTS",
McKinleySerializationEvents = 0x53, // "SERIALIZATION_EVENTS",
McKinleyBranchPathPrediction = 0x54, // "BR_PATH_PREDICTION",
McKinleyFailedSpeculativeCheckLoads = 0x55, // "INST_FAILED_CHKS_RETIRED",
McKinleyAdvancedCheckLoads = 0x56, // "INST_CHKA_LDC_ALAT",
McKinleyFailedAdvancedCheckLoads = 0x57, // "INST_FAILED_CHKA_LDC_ALAT",
McKinleyALATOverflows = 0x58, // "ALAT_CAPACITY_MISS",
McKinleyIA32InstRetired = 0x59, // "IA32_INSTR_RETIRED",
McKinleyBranchMispredictDetail = 0x5b, // "BR_MIS_PREDICT_DETAIL",
McKinleyL1InstStreamPrefetches = 0x5f, // "L0I_STRM_PREFETCHES",
McKinleyL1InstRABFull = 0x60, // "L0I_RAB_FULL",
McKinleyBackEndBranchMispredictDetail = 0x61, // "BE_BR_MISPREDICT_DETAIL",
McKinleyEncodedBranchMispredictDetail = 0x63, // "ENCBR_MISPREDICT_DETAIL",
McKinleyL1InstRABAlmostFull = 0x64, // "L0I_RAB_ALMOST_FULL",
McKinleyL1InstFetchRABHits = 0x65, // "L0I_FETCH_RAB_HIT",
McKinleyL1InstFetchISBHits = 0x66, // "L0I_FETCH_ISB_HIT",
McKinleyL1InstPrefetchStalls = 0x67, // "L0I_PREFETCH_STALL",
McKinleyBranchMispredictDetail2 = 0x68, // "BR_MIS_PREDICT_DETAIL2",
McKinleyL1InstPVABOverflows = 0x69, // "L0I_PVAB_OVERFLOW",
McKinleyBranchPathPrediction2 = 0x6a, // "BR_PATH_PREDICTION2",
McKinleyFrontEndLostBandwidth = 0x70, // "FE_LOST_BW",
McKinleyFrontEndBubbles = 0x71, // "FE_BUBBLE",
McKinleyBackEndLostBandwidth = 0x72, // "BE_LOST_BW_DUE_TO_FE",
McKinleyBackEndIdealLostBandwidth = 0x73, // "IDEAL_BE_LOST_BW_DUE_TO_FE",
McKinleyBusReadCpuLineHits = 0x80, // "BUS_RD_HIT",
McKinleyBusReadCpuModifiedLineHits = 0x81, // "BUS_RD_HITM",
McKinleyBusReadBILCpuModifiedLineHits = 0x82, // "BUS_RD_INVAL_HITM",
McKinleyBusReadBRILorBILCpuModifiedLineHits = 0x83, // "BUS_RD_INVAL_HITM",
McKinleyBusCpuModifiedLineHits = 0x84, // "BUS_HITM",
McKinleyBusCpuModifiedLineHitSnoops = 0x85, // "BUS_SNOOPS_HITM",
McKinleyBusSnoops = 0x86, // "BUS_SNOOPS",
McKinleyBusAll = 0x87, // "BUS_ALL",
McKinleyBusDataCycles = 0x88, // "BUS_ALL",
McKinleyBusMemoryCurrentReads = 0x89, // "BUS_MEMORY_READ_CURRENT",
McKinleyBusMemoryTransactions = 0x8a, // "BUS_MEMORY",
McKinleyBusMemoryReads = 0x8b, // "BUS_MEM_READ",
McKinleyBusMemoryDataReads = 0x8c, // "BUS_RD_DATA",
McKinleyBusMemoryBRPReads = 0x8d, // "BUS_RD_PRTL",
McKinleyBusIA32LockCycles = 0x8e, // "BUS_LOCK_CYCLES",
McKinleyBusSnoopStallCycles = 0x8f, // "BUS_SNOOP_STALL_CYCLES",
McKinleyBusIA32IOTransactions = 0x90, // "BUS_IO",
McKinleyBusIA32IOReads = 0x91, // "BUS_RD_IO",
McKinleyBusMemoryWriteBacks = 0x92, // "BUS_WR_WB",
McKinleyBusIA32LockTransactions = 0x93, // "BUS_LOCK",
McKinleyBusMemoryReadsOutstandingHi = 0x94, // "BUS_MEM_READ_OUT_HI",
McKinleyBusMemoryReadsOutstandingLow = 0x95, // "BUS_MEM_READ_OUT_LOW",
McKinleyBusSnoopResponses = 0x96, // "BUS_SNOOPQ_REQ",
McKinleyBusLiveInOrderRequestsLow = 0x97, // "BUS_IOQ_LIVE_REQ_LO",
McKinleyBusLiveInOrderRequestsHi = 0x98, // "BUS_IOQ_LIVE_REQ_HI",
McKinleyBusLiveDeferredRequestsLow = 0x99, // "BUS_OOO_LIVE_REQ_LO",
McKinleyBusLiveDeferredRequestsHi = 0x9a, // "BUS_OOO_LIVE_REQ_HI",
McKinleyBusLiveQueuedReadRequestsLow = 0x9b, // "BUS_BRQ_LIVE_REQ_LO",
McKinleyBusLiveQueuedReadRequestsHi = 0x9c, // "BUS_BRQ_LIVE_REQ_HI",
McKinleyBusRequestQueueInserts = 0x9d, // "BUS_BRQ_REQ_INSERTED",
McKinleyExternDPPins0To3Asserted = 0x9e, // "EXTERN_DP_PINS_0_TO_3",
McKinleyExternDPPins4To5Asserted = 0x9f, // "EXTERN_DP_PINS_4_TO_5",
McKinleyL2OZQCancels0 = 0xa0, // "L1_OZQ_CANCELS0",
McKinleyL2InstFetchCancels = 0xa1, // "L1_IFET_CANCELS",
McKinleyL2OZQAcquires = 0xa2, // "L1_OZQ_ACQUIRE",
McKinleyL2OZQReleases = 0xa3, // "L1_OZQ_ACQUIRE",
McKinleyL2InstFetchCancelsByBypass = 0xa5, // "L1_IFET_CANCELS",
McKinleyL2OZQAcquiresAliasA6 = 0xa6, // "L1_OZQ_ACQUIRE",
McKinleyL2OZQCancels2 = 0xa8, // "L1_OZQ_CANCELS2",
McKinleyL2InstFetchCancelsByDataRead = 0xa9, // "L1_IFET_CANCELS",
McKinleyL2OZQAcquiresAliasAA = 0xaa, // "L1_OZQ_ACQUIRE",
McKinleyL2OZQCancels1 = 0xac, // "L1_OZQ_CANCELS1",
McKinleyL2InstFetchCancelsByStFillWb = 0xad, // "L1_IFET_CANCELS",
McKinleyL2OZQAcquiresAliasAE = 0xae, // "L1_OZQ_ACQUIRE",
McKinleyL2CanceledL3Accesses = 0xb0, // "L1_L2ACCESS_CANCEL",
McKinleyL2References = 0xb1, // "L1_REFERENCES",
McKinleyL2DataReferences = 0xb2, // "L1_DATA_REFERENCES",
McKinleyL2DataReads = 0xb2, // "L1_DATA_REFERENCES.u[=xx01]",
McKinleyL2DataWrites = 0xb2, // "L1_DATA_REFERENCES.u[=xx10]",
McKinleyL2TaggedAccesses = 0xb3, // "TAGGED_L1_PORT",
McKinleyL2ForcedRecirculatedOperations = 0xb4, // "L1_FORCE_RECIRC",
McKinleyL2IssuedRecirculatedOZQAccesses = 0xb5, // "L1_ISSUED_RECIRC_OZQ_ACC",
McKinleyL2SuccessfulRecirculatedOZQAccesses = 0xb6, // "L1_GOT_RECIRC_OZQ_ACC",
McKinleyL2SynthesizedProbes = 0xb7, // "L1_SYNTH_PROBES",
McKinleyL2Bypasses = 0xb8, // "L1_BYPASS",
McKinleyL2IssuedOperations = 0xb8, // "L1_OPS_ISSUED",
McKinleyL2BadLinesSelected = 0xb9, // "L1_BAD_LINES_SELECTED",
McKinleyL2IssuedRecirculatedInstFetches = 0xb9, // "L1_ISSUED_RECIRC_IFETCH",
McKinleyL2StoreSharedLineHits = 0xba, // "L1_STORE_HIT_SHARED",
McKinleyL2ReceivedRecirculatedInstFetches = 0xba, // "L1_GOT_RECIRC_IFETCH",
McKinleyL2TaggedDataReturns = 0xbb, // "TAGGED_L1_DATA_RETURN_PORT",
McKinleyL2DataOrderingCzarQueueFull = 0xbc, // "L1_OZQ_FULL",
McKinleyL2DataOrderingCzarDataBufferFull = 0xbd, // "L1_OZDB_FULL",
McKinleyL2DataVictimBufferFull = 0xbe, // "L1_VICTIMB_FULL",
McKinleyL2DataFillBufferFull = 0xbf, // "L1_FILLB_FULL",
McKinleyL1DataTLBTransfersSet0 = 0xc0, // "L0DTLB_TRANSFER",
McKinleyDataTLBMissesSet0 = 0xc1, // "DTLB_MISSES",
McKinleyL1DataReadsSet0 = 0xc2, // "L0D_READS",
McKinleyL1DataReadsSet1 = 0xc4, // "L0D_READS",
McKinleyDataReferencesSet1 = 0xc5, // "DATA_REFERENCES",
McKinleyDataTLBReferencesSet1 = 0xc5, // "DTLB_REFERENCES",
McKinleyL1DataReadMissesSet1 = 0xc7, // "L0D_READ_MISSES",
McKinleyL1DataReadMissesByRSEFillsSet1 = 0xc7, // "L0D_READ_MISSES",
McKinleyDataEAREvents = 0xc8, // "DATA_EAR_EVENTS",
McKinleyDataTLBHPWInserts = 0xc9, // "DTLB_INSERTS_HPW",
McKinleyBackEndL0DAndFPUBubbles = 0xca, // "BE_L0D_FPU_BUBBLE",
McKinleyL2Misses = 0x6b, // "L1_MISSES",
McKinleyDataDebugRegisterMatches = 0xc6, // "DATA_DEBUG_REGISTER_MATCHES",
McKinleyRetiredLoads = 0xcd, // "LOADS_RETIRED",
McKinleyRetiredMisalignedLoads = 0xce, // "MISALIGNED_LOADS_RETIRED",
McKinleyRetiredUncacheableLoads = 0xcf, // "UC_LOADS_RETIRED",
McKinleyRetiredUncacheableStores = 0xd0, // "UC_STORES_RETIRED",
McKinleyRetiredStores = 0xd1, // "STORES_RETIRED",
McKinleyRetiredMisalignedStores = 0xd2, // "MISALIGNED_STORES_RETIRED",
McKinleyL1DataPortTaggedReturnsSet5 = 0xd5, // "TAGGED_L0_DATA_RETURN_PORT",
McKinleyL1DataPortTaggedAccessesSet5 = 0xd6, // "TAGGED_L0D_PORT",
McKinleyL3References = 0xdb, // "L2_REFERENCES",
McKinleyL3Misses = 0xdc, // "L2_MISSES",
McKinleyL3Reads = 0xdd, // "L2_READS",
McKinleyL3Writes = 0xde, // "L2_WRITES",
McKinleyL3ValidReplacedLines = 0xdf, // "L2_LINES_REPLACED",
} MCKINLEY_MONITOR_EVENT;
//
// McKinley Derived Events:
//
// Assumption: McKinleyDerivedEventMinimum > McKinleyMonitoredEventMaximum.
//
// Implementation Status legend specified as: S:FIV where
// - F: verified Formula or X for non-verified
// - I: Implemented or X for non-implemented
// - V: derived event validity verified or X for non-verified
//
typedef enum _MCKINLEY_DERIVED_EVENT { // Implementation status = McKinley PMU ERS Event Name = Formula
McKinleyDerivedEventMinimum = 0x100, /* > Maximum of McKinley Monitored Event */
McKinleyRSEStallCycles = McKinleyDerivedEventMinimum, // S:XXX - (McKinleyMemoryStallCycles - McKinleyDataStallAccessCycles)
McKinleyIssueLimitStallCycles, // S:XXX = XXX = (McKinleyExecStallCycles - McKinleyExecLatencyStallCycles)
McKinleyTakenBranchStallCycles, // S:XXX = (McKinleyBranchStallCycles - McKinleyBranchMispredictStallCycles)
McKinleyFetchWindowStallCycles, // S:XXX = (McKinleyInstFetchStallCycles - McKinleyInstAccessStallCycles)
McKinleyIA64InstPerCycle, // S:XXX = (IA64_INST_RETIRED.u / CPU_CYCLES[IA64])
McKinleyIA32InstPerCycle, // S:XXX = (IA32_INSTR_RETIRED / CPU_CYCLES[IA32])
McKinleyAvgIA64InstPerTransition, // S:XXX = (IA64_INST_RETIRED.u / (ISA_TRANSITIONS * 2))
McKinleyAvgIA32InstPerTransition, // S:XXX = (IA32_INSTR_RETIRED / (ISA_TRANSITIONS * 2))
McKinleyAvgIA64CyclesPerTransition, // S:XXX = (CPU_CYCLES[IA64] / (ISA_TRANSITIONS * 2))
McKinleyAvgIA32CyclesPerTransition, // S:XXX = (CPU_CYCLES[IA32] / (ISA_TRANSITIONS * 2))
McKinleyL1InstReferences, // S:XXX = LOI_REFERENCES = L0I_READS + L0I_IPREFETCHES
McKinleyL1InstMissRatio, // S:XXX = (L1I_MISSES / McKinleyL1InstReferences)
McKinleyL1DataReadMissRatio, // S:XXX = (L1D_READS_MISSES_RETIRED / L1D_READS_RETIRED)
McKinleyL2MissRatio, // S:XXX = (L2_MISSES / L2_REFERENCES)
McKinleyL2DataMissRatio, // S:XXX = (L3_DATA_REFERENCES / L2_DATA_REFERENCES)
McKinleyL2InstMissRatio, // S:XXX = (L3_DATA_REFERENCES / L2_DATA_REFERENCES)
McKinleyL2DataReadMissRatio, // S:XXX = (L3_LOAD_REFERENCES.u / L2_DATA_READS.u)
McKinleyL2DataWriteMissRatio, // S:XXX = (L3_STORE_REFERENCES.u / L2_DATA_WRITES.u)
McKinleyL2InstFetchRatio, // S:XXX = (L1I_MISSES / L2_REFERENCES)
McKinleyL2DataRatio, // S:XXX = (L2_DATA_REFERENCES / L2_REFERENCES)
McKinleyL3MissRatio, // S:XXX = (L3_MISSES / L2_MISSES)
McKinleyL3DataMissRatio, // S:XXX = ((L3_LOAD_MISSES.u + L3_STORE_MISSES.u) / L3_REFERENCES.d)
McKinleyL3InstMissRatio, // S:XXX = (L3_INST_MISSES.u / L3_INST_REFERENCES.u)
McKinleyL3DataReadMissRatio, // S:XXX = (L3_LOAD_REFERENCES.u / L3_DATA_REFERENCES.d)
McKinleyL3DataRatio, // S:XXX = (L3_DATA_REFERENCES.d / L3_REFERENCES)
McKinleyInstReferences, // S:XXX = (L1I_READS)
McKinleyL0DTLBMissRatio, // S:FXX = L0DTLB_MISS_RATIO = (L0DTLB_MISSES / L0D_READS)
McKinleyDTLBMissRatio, // S:FXX = DTLB_MISS_RATIO = (DTLB_MISSES / DATA_REFERENCES)
McKinleyDataTCMissRatio, // S:XXX = (DTC_MISSES / DATA_REFERENCES_RETIRED)
McKinleyInstTLBEAREvents, // S:XXX = (INSTRUCTION_EAR_EVENTS)
McKinleyDataTLBEAREvents, // S:XXX = (DATA_EAR_EVENTS)
McKinleyControlSpeculationMissRatio, // S:XXX = (INST_FAILED_CHKS_RETIRED / IA64_TAGGED_INSTRS_RETIRED[chk.s])
McKinleyDataSpeculationMissRatio, // S:XXX = (ALAT_INST_FAILED_CHKA_LDC / ALAT_INST_CHKA_LDC)
McKinleyALATCapacityMissRatio, // S:XXX = (ALAT_CAPACITY_MISS / IA64_TAGGED_INSTRS_RETIRED[ld.sa,ld.a,ldfp.a,ldfp.sa])
McKinleyL1DataWayMispredicts, // S:XXX = (EventCode: 0x33 / Umask: 0x2)
McKinleyL2InstReferences, // S:FXX = L1_INST_REFERENCES = (L0I_MISSES + L1_INST_PREFETCHES)
McKinleyInstFetches, // S:XXX = (L1I_MISSES)
McKinleyL3InstReferences, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL3InstMisses, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL3InstHits, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL3DataReferences, // S:FXX = L2_DATA_REFERENCES = (L2_REFERENCES - L2_INST_REFERENCES)
McKinleyL3ReadReferences, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL2WriteBackReferences, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL2WriteBackMisses, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL2WriteBackHits, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL2WriteReferences, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL2WriteMisses, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyL2WriteHits, // S:XXX = (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
McKinleyBranchInstructions, // S:XXX = (TAGGED_INSTR + opcode)
McKinleyIntegerInstructions, // S:XXX = (TAGGED_INSTR + opcode)
McKinleyL1DataMisses, // S:XXX =
McKinleyISBLinesIn, // S:FXX = ISB_LINES_IN = (ISB_BUNPAIRS_IN/4)
McKinleyBusMemoryCodeReads, // S:FXX = BUS_RD_INSTRUCTIONS = (BUS_RD_ALL - BUS_RD_DATA)
McKinleyBusReadBILMemoryHits, // S:FXX = BUS_RD_INVAL_MEMORY = (BUS_RD_INVAL - BUS_RD_INVAL_HITM)
McKinleyBusReadBRILCpuModifiedLineHits, // S:FXX = BUS_RD_INVAL_BST_HIM = (BUS_RD_INVAL_ALL_HITM - BUS_RD_INVAL_HITM)
McKinleyBusReadBRILMemoryHits, // S:FXX = BUS_RD_INVAL_BST_MEMORY = (BUS_RD_INVAL_BST - BUS_RD_INVAL_BST_HITM)
McKinleyBusMemoryReadsOutstanding, // S:FXX = BUS_MEM_READ_OUTSTANDING = (BUS_MEM_READ_OUT_HI*8 + BUS_MEM_READ_OUT_LOW)
McKinleyBusLiveInOrderRequests, // S:FXX = BUS_IOQ_LIVE_REQ = (BUS_IOQ_LIVE_REQ_HI*4 + BUS_IOQ_LIVE_REQ_LO)
McKinleyBusLiveDeferredRequests, // S:FXX = BUS_OOO_LIVE_REQ = (BUS_OOO_LIVE_REQ_HI[4:3] | BUS_OOO_LIVE_REQ_LO[2:0])
McKinleyBusLiveQueuedReadRequests, // S:FXX = BUS_BRQ_LIVE_REQ = (BUS_BRQ_LIVE_REQ_HI[4:3] | BUS_BRQ_LIVE_REQ_LO[2:0])
McKinleyRSEDirtyRegs, // S:FXX = RSE_DIRTY_REGS = (64*RSE_DIRTY_REGS0[6]+8*RSE_DIRTY_REGS1[5:3]+REG_DIRTY_REGS2[2:0])
McKinleyRSECurrentRegs, // S:FXX = RSE_CURRENT_REGS = (64*RSE_CURRENT_REGS0[6]+8*RSE_DIRTY_REGS1[5:3]+REG_DIRTY_REGS2[2:0])
} MCKINLEY_DERIVED_EVENT;
typedef enum _KPROFILE_MCKINLEY_SOURCE {
//
// Profile McKinley Monitored Events:
//
ProfileMcKinleyMonitoredEventMinimum = ProfileMaximum + 0x1,
ProfileMcKinleyBackEndBubbles = ProfileMcKinleyMonitoredEventMinimum,
ProfileMcKinleyBackEndRSEBubbles,
ProfileMcKinleyBackEndEXEBubbles,
ProfileMcKinleyBackEndL0DAndFPUBubbles,
ProfileMcKinleyBackEndFlushBubbles,
ProfileMcKinleyFrontEndBubbles,
ProfileMcKinleyFrontEndLostBandwidth,
ProfileMcKinleyBackEndLostBandwidth,
ProfileMcKinleyBackEndIdealLostBandwidth,
ProfileMcKinleyFPTrueSirStalls,
ProfileMcKinleyFPFalseSirStalls,
ProfileMcKinleyFPFailedFchkf,
ProfileMcKinleyTaggedInstRetired,
ProfileMcKinleyInstRetired,
ProfileMcKinleyFPOperationsRetired,
ProfileMcKinleyFPFlushesToZero,
ProfileMcKinleyBranchPathPrediction,
ProfileMcKinleyBranchPathPrediction2,
ProfileMcKinleyBranchMispredictDetail,
ProfileMcKinleyBranchMispredictDetail2,
ProfileMcKinleyBranchEventsWithEAR,
ProfileMcKinleyBackEndBranchMispredictDetail,
ProfileMcKinleyEncodedBranchMispredictDetail,
ProfileMcKinleyCpuCycles,
ProfileMcKinleyISATransitions,
ProfileMcKinleyIA32InstRetired,
ProfileMcKinleyL1InstReads,
ProfileMcKinleyL1InstFills,
ProfileMcKinleyL1InstMisses,
ProfileMcKinleyL1InstEAREvents,
ProfileMcKinleyL1InstPrefetches,
ProfileMcKinleyL1InstStreamPrefetches,
ProfileMcKinleyL2InstPrefetches,
ProfileMcKinleyISBBundlePairs,
ProfileMcKinleyL1InstFetchRABHits,
ProfileMcKinleyL1InstFetchISBHits,
ProfileMcKinleyL1InstPrefetchStalls,
ProfileMcKinleyL1InstRABAlmostFull,
ProfileMcKinleyL1InstRABFull,
ProfileMcKinleyL1InstSnoops,
ProfileMcKinleyL1InstPurges,
ProfileMcKinleyL1InstPVABOverflows,
ProfileMcKinleyL1DataReadsSet0,
ProfileMcKinleyL1DataTLBTransfersSet0,
ProfileMcKinleyDataTLBMissesSet0,
ProfileMcKinleyDataReferencesSet1,
ProfileMcKinleyL1DataReadsSet1,
ProfileMcKinleyL1DataReadMissesSet1,
ProfileMcKinleyL1DataReadMissesByRSEFillsSet1,
ProfileMcKinleyL1DataPortTaggedAccessesSet5,
ProfileMcKinleyL1DataPortTaggedReturnsSet5,
ProfileMcKinleyVHPTDataReferences,
ProfileMcKinleyDataEAREvents,
ProfileMcKinleyL2OZQCancels0,
ProfileMcKinleyL2OZQCancels1,
ProfileMcKinleyL2OZQCancels2,
ProfileMcKinleyL2InstFetchCancels,
ProfileMcKinleyL2InstFetchCancelsByBypass,
ProfileMcKinleyL2InstFetchCancelsByDataRead,
ProfileMcKinleyL2InstFetchCancelsByStFillWb,
ProfileMcKinleyL2OZQAcquires,
ProfileMcKinleyL2OZQReleases,
ProfileMcKinleyL2CanceledL3Accesses,
ProfileMcKinleyL2References,
ProfileMcKinleyL2DataReferences,
ProfileMcKinleyL2DataReads,
ProfileMcKinleyL2DataWrites,
ProfileMcKinleyL2TaggedAccesses,
ProfileMcKinleyL2ForcedRecirculatedOperations,
ProfileMcKinleyL2IssuedRecirculatedOZQAccesses,
ProfileMcKinleyL2SuccessfulRecirculatedOZQAccesses,
ProfileMcKinleyL2SynthesizedProbes,
ProfileMcKinleyL2DataBypasses1,
ProfileMcKinleyL2DataBypasses2,
ProfileMcKinleyL3DataBypasses1,
ProfileMcKinleyL2InstBypasses1,
ProfileMcKinleyL2InstBypasses2,
ProfileMcKinleyL3InstBypasses1,
ProfileMcKinleyL2BadLinesSelected,
ProfileMcKinleyL2StoreSharedLineHits,
ProfileMcKinleyL2IntegerLoads,
ProfileMcKinleyL2FloatingPointLoads,
ProfileMcKinleyL2ReadModifyWriteStores,
ProfileMcKinleyL2NonReadModifyWriteStores,
ProfileMcKinleyL2NonLoadsNonStores,
ProfileMcKinleyL2IssuedRecirculatedInstFetches,
ProfileMcKinleyL2ReceivedRecirculatedInstFetches,
ProfileMcKinleyL2TaggedDataReturns,
ProfileMcKinleyL2DataFillBufferFull,
ProfileMcKinleyL2DataVictimBufferFull,
ProfileMcKinleyL2DataOrderingCzarDataBufferFull,
ProfileMcKinleyL2DataOrderingCzarQueueFull,
ProfileMcKinleyL2Misses,
ProfileMcKinleyL3References,
ProfileMcKinleyL3Misses,
ProfileMcKinleyL3Reads,
ProfileMcKinleyL3ReadHits,
ProfileMcKinleyL3ReadMisses,
ProfileMcKinleyL3InstFetchReferences,
ProfileMcKinleyL3InstFetchHits,
ProfileMcKinleyL3InstFetchMisses,
ProfileMcKinleyL3LoadReferences,
ProfileMcKinleyL3LoadHits,
ProfileMcKinleyL3LoadMisses,
ProfileMcKinleyL3Writes,
ProfileMcKinleyL3WriteHits,
ProfileMcKinleyL3WriteMisses,
ProfileMcKinleyL3StoreReferences,
ProfileMcKinleyL3StoreHits,
ProfileMcKinleyL3StoreMisses,
ProfileMcKinleyL3WriteBackReferences,
ProfileMcKinleyL3WriteBackHits,
ProfileMcKinleyL3WriteBackMisses,
ProfileMcKinleyL3ValidReplacedLines,
ProfileMcKinleyDataDebugRegisterMatches,
ProfileMcKinleyCodeDebugRegisterMatches,
ProfileMcKinleyDataDebugRegisterFaults,
ProfileMcKinleyCpuCPLChanges,
ProfileMcKinleySerializationEvents,
ProfileMcKinleyExternDPPins0To3Asserted,
ProfileMcKinleyExternDPPins4To5Asserted,
ProfileMcKinleyInstTLBReferences,
ProfileMcKinleyInstTLBDemandFetchMisses,
ProfileMcKinleyL1InstTLBDemandFetchMisses,
ProfileMcKinleyL2InstTLBDemandFetchMisses,
ProfileMcKinleyInstTLBHPWInserts,
ProfileMcKinleyDataTLBReferencesSet1,
ProfileMcKinleyDataTLBHPWInserts,
ProfileMcKinleyDataTLBHPWRetiredInserts,
ProfileMcKinleyBusAllTransactions,
ProfileMcKinleyBusSelfTransactions,
ProfileMcKinleyBusNonPriorityAgentTransactions,
ProfileMcKinleyBusMemoryTransactions,
ProfileMcKinleyBusMemoryBurstTransactions,
ProfileMcKinleyBusMemoryPartialTransactions,
ProfileMcKinleyBusMemoryReads,
ProfileMcKinleyBusMemoryBRLTransactions,
ProfileMcKinleyBusMemoryBILTransactions,
ProfileMcKinleyBusMemoryBRILTransactions,
ProfileMcKinleyBusMemoryDataReads,
ProfileMcKinleyBusMemoryDataReadsBySelf,
ProfileMcKinleyBusMemoryDataReadsByNonPriorityAgent,
ProfileMcKinleyBusMemoryBRPReads,
ProfileMcKinleyBusMemoryBRPReadsBySelf,
ProfileMcKinleyBusMemoryBRPReadsByNonPriorityAgent,
ProfileMcKinleyBusReadCpuLineHits,
ProfileMcKinleyBusReadCpuModifiedLineHits,
ProfileMcKinleyBusReadBILCpuModifiedLineHits,
ProfileMcKinleyBusReadBRILorBILCpuModifiedLineHits,
ProfileMcKinleyBusCpuModifiedLineHits,
ProfileMcKinleyBusMemoryWriteBacks,
ProfileMcKinleyBusMemoryWriteBacksBySelf,
ProfileMcKinleyBusMemoryWriteBacksByNonPriorityAgent,
ProfileMcKinleyBusMemoryBurstWriteBacks,
ProfileMcKinleyBusMemoryBurstWriteBacksBySelf,
ProfileMcKinleyBusMemoryBurstWriteBacksByNonPriorityAgent,
ProfileMcKinleyBusMemoryZeroByteWriteBacks,
ProfileMcKinleyBusMemoryZeroByteWriteBacksBySelf,
ProfileMcKinleyBusMemoryCurrentReads,
ProfileMcKinleyBusMemoryCurrentReadsByNonPriorityAgent,
ProfileMcKinleyBusCpuModifiedLineHitSnoops,
ProfileMcKinleyBusCpuModifiedLineHitSnoopsBySelf,
ProfileMcKinleyBusSnoops,
ProfileMcKinleyBusSnoopsBySelf,
ProfileMcKinleyBusSnoopsByNonPriorityAgent,
ProfileMcKinleyBusSnoopStallCycles,
ProfileMcKinleyBusSnoopStallCyclesBySelf,
ProfileMcKinleyBusDataCycles,
ProfileMcKinleyBusSnoopResponses,
ProfileMcKinleyBusRequestQueueInserts,
ProfileMcKinleyBusIA32IOTransactions,
ProfileMcKinleyBusIA32IOTransactionsBySelf,
ProfileMcKinleyBusIA32IOTransactionsByNonPriorityAgent,
ProfileMcKinleyBusIA32IOReads,
ProfileMcKinleyBusIA32IOReadsBySelf,
ProfileMcKinleyBusIA32IOReadsByNonPriorityAgent,
ProfileMcKinleyBusIA32LockTransactions,
ProfileMcKinleyBusIA32LockTransactionsBySelf,
ProfileMcKinleyBusIA32LockCycles,
ProfileMcKinleyBusIA32LockCyclesBySelf,
ProfileMcKinleyRSEAccesses,
ProfileMcKinleyRSELoads,
ProfileMcKinleyRSEStores,
ProfileMcKinleyRSELoadUnderflowCycles,
ProfileMcKinleyRSEOperations,
ProfileMcKinleyTaggedInstructionsAtRotate,
ProfileMcKinleyInstDispersed,
ProfileMcKinleyDispersalCyclesStalled,
ProfileMcKinleySyllablesOvercount,
ProfileMcKinleySyllablesNotDispersed,
ProfileMcKinleyInstNOPRetired,
ProfileMcKinleyInstPredicateSquashedRetired,
ProfileMcKinleyFailedSpeculativeCheckLoads,
ProfileMcKinleyAdvancedCheckLoads,
ProfileMcKinleyFailedAdvancedCheckLoads,
ProfileMcKinleyALATOverflows,
ProfileMcKinleyRetiredLoads,
ProfileMcKinleyRetiredStores,
ProfileMcKinleyRetiredUncacheableLoads,
ProfileMcKinleyRetiredUncacheableStores,
ProfileMcKinleyRetiredMisalignedLoads,
ProfileMcKinleyRetiredMisalignedStores,
//
// Profile McKinley Derived Events:
//
ProfileMcKinleyDerivedEventMinimum,
ProfileMcKinleyRSEStallCycles = ProfileMcKinleyDerivedEventMinimum,
ProfileMcKinleyIssueLimitStallCycles,
ProfileMcKinleyTakenBranchStallCycles,
ProfileMcKinleyFetchWindowStallCycles,
ProfileMcKinleyIA64InstPerCycle,
ProfileMcKinleyIA32InstPerCycle,
ProfileMcKinleyAvgIA64InstPerTransition,
ProfileMcKinleyAvgIA32InstPerTransition,
ProfileMcKinleyAvgIA64CyclesPerTransition,
ProfileMcKinleyAvgIA32CyclesPerTransition,
ProfileMcKinleyL1InstReferences,
ProfileMcKinleyL1InstMissRatio,
ProfileMcKinleyL1DataReadMissRatio,
ProfileMcKinleyL2MissRatio,
ProfileMcKinleyL2DataMissRatio,
ProfileMcKinleyL2InstMissRatio,
ProfileMcKinleyL2DataReadMissRatio,
ProfileMcKinleyL2DataWriteMissRatio,
ProfileMcKinleyL2InstFetchRatio,
ProfileMcKinleyL2DataRatio,
ProfileMcKinleyL3MissRatio,
ProfileMcKinleyL3DataMissRatio,
ProfileMcKinleyL3InstMissRatio,
ProfileMcKinleyL3DataReadMissRatio,
ProfileMcKinleyL3DataRatio,
ProfileMcKinleyInstReferences,
ProfileMcKinleyL0DTLBMissRatio,
ProfileMcKinleyDTLBMissRatio,
ProfileMcKinleyDataTCMissRatio,
ProfileMcKinleyInstTLBEAREvents,
ProfileMcKinleyDataTLBEAREvents,
ProfileMcKinleyControlSpeculationMissRatio,
ProfileMcKinleyDataSpeculationMissRatio,
ProfileMcKinleyALATCapacityMissRatio,
ProfileMcKinleyL1DataWayMispredicts,
ProfileMcKinleyL2InstReferences,
ProfileMcKinleyInstFetches,
ProfileMcKinleyL3InstReferences,
ProfileMcKinleyL3InstMisses,
ProfileMcKinleyL3InstHits,
ProfileMcKinleyL3DataReferences,
ProfileMcKinleyL3ReadReferences,
ProfileMcKinleyL2WriteBackReferences,
ProfileMcKinleyL2WriteBackMisses,
ProfileMcKinleyL2WriteBackHits,
ProfileMcKinleyL2WriteReferences,
ProfileMcKinleyL2WriteMisses,
ProfileMcKinleyL2WriteHits,
ProfileMcKinleyBranchInstructions,
ProfileMcKinleyIntegerInstructions,
ProfileMcKinleyL1DataMisses,
ProfileMcKinleyISBLinesIn,
ProfileMcKinleyBusMemoryCodeReads,
ProfileMcKinleyBusReadBILMemoryHits,
ProfileMcKinleyBusReadBRILCpuModifiedLineHits,
ProfileMcKinleyBusReadBRILMemoryHits,
ProfileMcKinleyBusMemoryReadsOutstanding,
ProfileMcKinleyBusLiveInOrderRequests,
ProfileMcKinleyBusLiveDeferredRequests,
ProfileMcKinleyBusLiveQueuedReadRequests,
ProfileMcKinleyRSEDirtyRegs,
ProfileMcKinleyRSECurrentRegs,
ProfileMcKinleyMaximum
} KPROFILE_MCKINLEY_SOURCE, *PKPROFILE_MCKINLEY_SOURCE;
#define PROFILE_TIME_MCKINLEY_DEFAULT_INTERVAL (10 * 1000 * 10) // 10 milliseconds
#endif /* MCKINLEY_H_INCLUDED */