#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 */