Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

424 lines
21 KiB

  1. #ifndef MERCED_H_INCLUDED
  2. #define MERCED_H_INCLUDED
  3. /*++
  4. Copyright (c) 1989-2000 Microsoft Corporation
  5. Component Name:
  6. HALIA64
  7. Module Name:
  8. merced.h
  9. Abstract:
  10. This header file presents IA64 Itanium [aka Merced] definitions.
  11. Like profiling definitions.
  12. Author:
  13. David N. Cutler (davec) 5-Mar-1989
  14. Environment:
  15. ToBeSpecified
  16. Revision History:
  17. 3/15/2000 Thierry Fevrier (v-thief@microsoft.com):
  18. Initial version
  19. --*/
  20. //
  21. // MercedBranchPathPrediction - Branch Path Mask [XXTF: not really a mask, more a specification value].
  22. //
  23. typedef enum _MERCED_BRANCH_PATH_RESULT_MASK {
  24. MISPRED_NT = 0x0,
  25. MISPRED_TAKEN = 0x1,
  26. OKPRED_NT = 0x2,
  27. OKPRED_TAKEN = 0x3,
  28. } MERCED_BRANCH_PATH_RESULT_MASK;
  29. //
  30. // MercedBranchTakenDetail - Slot Unit Mask.
  31. //
  32. typedef enum _MERCED_BRANCH_TAKEN_DETAIL_SLOT_MASK {
  33. INSTRUCTION_SLOT0 = 0x1,
  34. INSTRUCTION_SLOT1 = 0x2,
  35. INSTRUCTION_SLOT2 = 0x4,
  36. NOT_TAKEN_BRANCH = 0x8
  37. } MERCED_BRANCH_TAKEN_DETAIL_SLOT_MASK;
  38. //
  39. // MercedBranchMultiWayDetail - Prediction OutCome Mask [XXTF: not really a mask, more a specification value].
  40. // MercedBranchMispredictDetail
  41. //
  42. typedef enum _MERCED_BRANCH_DETAIL_PREDICTION_OUTCOME_MASK {
  43. ALL_PREDICTIONS = 0x0,
  44. CORRECT_PREDICTION = 0x1,
  45. WRONG_PATH = 0x2,
  46. WRONG_TARGET = 0x3
  47. } MERCED_BRANCH_MWAY_DETAIL_PREDICTION_OUTCOME_MASK;
  48. //
  49. // MercedBranchMultiWayDetail - Branch Path Mask [XXTF: not really a mask, more a specification value].
  50. //
  51. typedef enum _MERCED_BRANCH_MWAY_DETAIL_BRANCH_PATH_MASK {
  52. NOT_TAKEN = 0x0,
  53. TAKEN = 0x1,
  54. ALL_PATH = 0x2
  55. } MERCED_BRANCH_MWAY_DETAIL_BRANCH_PATH_MASK;
  56. //
  57. // INST_TYPE for:
  58. //
  59. // MercedFailedSpeculativeCheckLoads
  60. // MercedAdvancedCheckLoads
  61. // MercedFailedAdvancedCheckLoads
  62. // MercedALATOverflows
  63. //
  64. typedef enum _MERCED_SPECULATION_EVENT_MASK {
  65. NONE = 0x0,
  66. INTEGER = 0x1,
  67. FP = 0x2,
  68. ALL = 0x3
  69. } MERCED_SPECULATION_EVENT_MASK;
  70. typedef enum _MERCED_MONITOR_EVENT_ALIAS {
  71. IA64_INSTS_RETIRED_EVENT_CODE = 0x09,
  72. FPOPS_RETIRED_EVENT_CODE = 0x0a,
  73. } MERCED_MONITOR_EVENT_ALIAS;
  74. //
  75. // MercedCpuCycles - Executing Instruction Set
  76. //
  77. typedef enum _MERCED_CPU_CYCLES_MODE_MASK {
  78. ALL_MODES = 0x0,
  79. IA64_MODE = 0x1,
  80. IA32_MODE = 0x2
  81. } MERCED_CPU_CYCLES_MODE_MASK;
  82. //
  83. // Merced Monitored Events:
  84. //
  85. typedef enum _MERCED_MONITOR_EVENT {
  86. MercedMonitoredEventMinimum = 0x00,
  87. MercedBranchMispredictStallCycles = 0x00, // "BRANCH_MISPRED_CYCLE"
  88. MercedInstAccessStallCycles = 0x01, // "INST_ACCESS_CYCLE"
  89. MercedExecLatencyStallCycles = 0x02, // "EXEC_LATENCY_CYCLE"
  90. MercedDataAccessStallCycles = 0x03, // "DATA_ACCESS_CYCLE"
  91. MercedBranchStallCycles = 0x04, // "BRANCH_CYCLE",
  92. MercedInstFetchStallCycles = 0x05, // "INST_FETCH_CYCLE",
  93. MercedExecStallCycles = 0x06, // "EXECUTION_CYCLE",
  94. MercedMemoryStallCycles = 0x07, // "MEMORY_CYCLE",
  95. MercedTaggedInstRetired = 0x08, // "IA64_TAGGED_INSTRS_RETIRED", XXTF - ToBeDone: Set Event Qualification
  96. MercedInstRetired = IA64_INSTS_RETIRED_EVENT_CODE, // "IA64_INSTS_RETIRED.u", XXTF - ToBeDone: Set Umask - 0x0.
  97. MercedFPOperationsRetired = FPOPS_RETIRED_EVENT_CODE, // "FPOPS_RETIRED", XXTF - ToBeDone: Set IA64_TAGGED_INSTRS_RETIRED opcode
  98. MercedFPFlushesToZero = 0x0b, // "FP_FLUSH_TO_ZERO",
  99. MercedSIRFlushes = 0x0c, // "FP_SIR_FLUSH",
  100. MercedBranchTakenDetail = 0x0d, // "BR_TAKEN_DETAIL", // XXTF - ToBeDone - Slot specification[0,1,2,NO] + addresses range
  101. MercedBranchMultiWayDetail = 0x0e, // "BR_MWAY_DETAIL", // XXTF - ToBeDone - Not taken/Taken/all path + Prediction outcome + address range
  102. MercedBranchPathPrediction = 0x0f, // "BR_PATH_PREDICTION", // XXTF - ToBeDone - BRANCH_PATH_RESULT specification + address range
  103. MercedBranchMispredictDetail = 0x10, // "BR_MISPREDICT_DETAIL", // XXTF - ToBeDone - Prediction outcome specification + address range
  104. MercedBranchEvents = 0x11, // "BRANCH_EVENT",
  105. MercedCpuCycles = 0x12, // "CPU_CYCLES", // XXTF - ToBeDone - All/IA64/IA32
  106. MercedISATransitions = 0x14, // "ISA_TRANSITIONS",
  107. MercedIA32InstRetired = 0x15, // "IA32_INSTR_RETIRED",
  108. MercedL1InstReads = 0x20, // "L0I_READS", // XXTF - ToBeDone - + address range
  109. MercedL1InstFills = 0x21, // "L0I_FILLS", // XXTF - ToBeDone - + address range
  110. MercedL1InstMisses = 0x22, // "L0I_MISSES", // XXTF - ToBeDone - + address range
  111. MercedInstEAREvents = 0x23, // "INSTRUCTION_EAR_EVENTS",
  112. MercedL1InstPrefetches = 0x24, // "L0I_IPREFETCHES", // XXTF - ToBeDone - + address range
  113. MercedL2InstPrefetches = 0x25, // "L1_INST_PREFETCHES", // XXTF - ToBeDone - + address range
  114. MercedInstStreamingBufferLinesIn = 0x26, // "ISB_LINES_IN", // XXTF - ToBeDone - + address range
  115. MercedInstTLBDemandFetchMisses = 0x27, // "ITLB_MISSES_FETCH", // XXTF - ToBeDone - + ??? address range + PMC.umask on L1ITLB/L2ITLB/ALL/NOTHING.
  116. MercedInstTLBHPWInserts = 0x28, // "ITLB_INSERTS_HPW", // XXTF - ToBeDone - + ??? address range
  117. MercedInstDispersed = 0x2d, // "INST_DISPERSED",
  118. MercedExplicitStops = 0x2e, // "EXPL_STOPBITS",
  119. MercedImplicitStops = 0x2f, // "IMPL_STOPS_DISPERSED",
  120. MercedInstNOPRetired = 0x30, // "NOPS_RETIRED",
  121. MercedInstPredicateSquashedRetired = 0x31, // "PREDICATE_SQUASHED_RETIRED",
  122. MercedRSELoadRetired = 0x32, // "RSE_LOADS_RETIRED",
  123. MercedPipelineFlushes = 0x33, // "PIPELINE_FLUSH",
  124. MercedCpuCPLChanges = 0x34, // "CPU_CPL_CHANGES",
  125. MercedFailedSpeculativeCheckLoads = 0x35, // "INST_FAILED_CHKS_RETIRED", // XXTF - ToBeDone - INST_TYPE
  126. MercedAdvancedCheckLoads = 0x36, // "ALAT_INST_CHKA_LDC", // XXTF - ToBeDone - INST_TYPE
  127. MercedFailedAdvancedCheckLoads = 0x37, // "ALAT_INST_FAILED_CHKA_LDC", // XXTF - ToBeDone - INST_TYPE
  128. MercedALATOverflows = 0x38, // "ALAT_CAPACITY_MISS", // XXTF - ToBeDone - INST_TYPE
  129. MercedExternBPMPins03Asserted = 0x5e, // "EXTERN_BPM_PINS_0_TO_3",
  130. MercedExternBPMPins45Asserted = 0x5f, // "EXTERN_BPM_PINS_4_TO_5",
  131. MercedDataTCMisses = 0x60, // "DTC_MISSES", // XXTF - ToBeDone - + ??? address range
  132. MercedDataTLBMisses = 0x61, // "DTLB_MISSES", // XXTF - ToBeDone - + ??? address range
  133. MercedDataTLBHPWInserts = 0x62, // "DTLB_INSERTS_HPW", // XXTF - ToBeDone - + ??? address range
  134. MercedDataReferences = 0x63, // "DATA_REFERENCES_RETIRED", // XXTF - ToBeDone - + ibr, opcode, dbr
  135. MercedL1DataReads = 0x64, // "L1D_READS_RETIRED", // XXTF - ToBeDone - + ibr, opcode, dbr
  136. MercedRSEAccesses = 0x65, // "RSE_REFERENCES_RETIRED",
  137. MercedL1DataReadMisses = 0x66, // "L1D_READ_MISSES_RETIRED", // XXTF - ToBeDone - + ibr, opcode, dbr
  138. MercedL1DataEAREvents = 0x67, // "DATA_EAR_EVENTS",
  139. MercedL2References = 0x68, // "L2_REFERENCES", // XXTF - ToBeDone - + ibr, opcode, dbr
  140. MercedL2DataReferences = 0x69, // "L2_DATA_REFERENCES", // XXTF - ToBeDone - + ibr, opcode, dbr
  141. MercedL2Misses = 0x6a, // "L2_MISSES", // XXTF - ToBeDone - + ibr, opcode, dbr
  142. MercedL1DataForcedLoadMisses = 0x6b, // "L1D_READ_FORCED_MISSES_RETIRED", // XXTF - ToBeDone - + ibr, opcode, dbr
  143. MercedRetiredLoads = 0x6c, // "LOADS_RETIRED",
  144. MercedRetiredStores = 0x6d, // "STORES_RETIRED",
  145. MercedRetiredUncacheableLoads = 0x6e, // "UC_LOADS_RETIRED",
  146. MercedRetiredUncacheableStores = 0x6f, // "UC_STORES_RETIRED",
  147. MercedRetiredMisalignedLoads = 0x70, // "MISALIGNED_LOADS_RETIRED",
  148. MercedRetiredMisalignedStores = 0x71, // "MISALIGNED_STORES_RETIRED",
  149. MercedL2Flushes = 0x76, // "L2_FLUSHES", // XXTF - ToBeDone - + ibr, opcode, dbr
  150. MercedL2FlushesDetail = 0x77, // "L2_FLUSH_DETAILS", // XXTF - ToBeDone - + ibr, opcode, dbr
  151. MercedL3References = 0x7b, // "L3_REFERENCES",
  152. MercedL3Misses = 0x7c, // "L3_MISSES",
  153. MercedL3Reads = 0x7d, // "L3_READS",
  154. MercedL3Writes = 0x7e, // "L3_WRITES",
  155. MercedL3LinesReplaced = 0x7f, // "L3_LINES_REPLACED",
  156. //
  157. // 02/08/00 - Are missing: [at least]
  158. // - Front-Side bus events,
  159. // - IVE events,
  160. // - Debug monitor events,
  161. // - ...
  162. //
  163. } MERCED_MONITOR_EVENT;
  164. //
  165. // Merced Derived Events:
  166. //
  167. // Assumption: MercedDerivedEventMinimum > MercedMonitoredEventMaximum.
  168. //
  169. typedef enum _MERCED_DERIVED_EVENT {
  170. MercedDerivedEventMinimum = 0x100, /* > Maximum of Merced Monitored Event */
  171. MercedRSEStallCycles = MercedDerivedEventMinimum, // XXTF - ToBeDone - (MercedMemoryStallCycles - MercedDataStallAccessCycles)
  172. MercedIssueLimitStallCycles, // XXTF - ToBeDone - (MercedExecStallCycles - MercedExecLatencyStallCycles)
  173. MercedTakenBranchStallCycles, // XXTF - ToBeDone - (MercedBranchStallCycles - MercedBranchMispredictStallCycles)
  174. MercedFetchWindowStallCycles, // XXTF - ToBeDone - (MercedInstFetchStallCycles - MercedInstAccessStallCycles)
  175. MercedIA64InstPerCycle, // XXTF - ToBeDone - (IA64_INST_RETIRED.u / CPU_CYCLES[IA64])
  176. MercedIA32InstPerCycle, // XXTF - ToBeDone - (IA32_INSTR_RETIRED / CPU_CYCLES[IA32])
  177. MercedAvgIA64InstPerTransition, // XXTF - ToBeDone - (IA64_INST_RETIRED.u / (ISA_TRANSITIONS * 2))
  178. MercedAvgIA32InstPerTransition, // XXTF - ToBeDone - (IA32_INSTR_RETIRED / (ISA_TRANSITIONS * 2))
  179. MercedAvgIA64CyclesPerTransition, // XXTF - ToBeDone - (CPU_CYCLES[IA64] / (ISA_TRANSITIONS * 2))
  180. MercedAvgIA32CyclesPerTransition, // XXTF - ToBeDone - (CPU_CYCLES[IA32] / (ISA_TRANSITIONS * 2))
  181. MercedL1InstReferences, // XXTF - ToBeDone - (L1I_READS / L1I_IPREFETCHES)
  182. MercedL1InstMissRatio, // XXTF - ToBeDone - (L1I_MISSES / MercedL1InstReferences)
  183. MercedL1DataReadMissRatio, // XXTF - ToBeDone - (L1D_READS_MISSES_RETIRED / L1D_READS_RETIRED)
  184. MercedL2MissRatio, // XXTF - ToBeDone - (L2_MISSES / L2_REFERENCES)
  185. MercedL2DataMissRatio, // XXTF - ToBeDone - (L3_DATA_REFERENCES / L2_DATA_REFERENCES)
  186. MercedL2InstMissRatio, // XXTF - ToBeDone - (L3_DATA_REFERENCES / L2_DATA_REFERENCES)
  187. MercedL2DataReadMissRatio, // XXTF - ToBeDone - (L3_LOAD_REFERENCES.u / L2_DATA_READS.u)
  188. MercedL2DataWriteMissRatio, // XXTF - ToBeDone - (L3_STORE_REFERENCES.u / L2_DATA_WRITES.u)
  189. MercedL2InstFetchRatio, // XXTF - ToBeDone - (L1I_MISSES / L2_REFERENCES)
  190. MercedL2DataRatio, // XXTF - ToBeDone - (L2_DATA_REFERENCES / L2_REFERENCES)
  191. MercedL3MissRatio, // XXTF - ToBeDone - (L3_MISSES / L2_MISSES)
  192. MercedL3DataMissRatio, // XXTF - ToBeDone - ((L3_LOAD_MISSES.u + L3_STORE_MISSES.u) / L3_REFERENCES.d)
  193. MercedL3InstMissRatio, // XXTF - ToBeDone - (L3_INST_MISSES.u / L3_INST_REFERENCES.u)
  194. MercedL3DataReadMissRatio, // XXTF - ToBeDone - (L3_LOAD_REFERENCES.u / L3_DATA_REFERENCES.d)
  195. MercedL3DataRatio, // XXTF - ToBeDone - (L3_DATA_REFERENCES.d / L3_REFERENCES)
  196. MercedInstReferences, // XXTF - ToBeDone - (L1I_READS)
  197. MercedInstTLBMissRatio, // XXTF - ToBeDone - (ITLB_MISSES_FETCH / L1I_READS)
  198. MercedDataTLBMissRatio, // XXTF - ToBeDone - (DTLB_MISSES / DATA_REFERENCES_RETIRED)
  199. MercedDataTCMissRatio, // XXTF - ToBeDone - (DTC_MISSES / DATA_REFERENCES_RETIRED)
  200. MercedInstTLBEAREvents, // XXTF - ToBeDone - (INSTRUCTION_EAR_EVENTS)
  201. MercedDataTLBEAREvents, // XXTF - ToBeDone - (DATA_EAR_EVENTS)
  202. MercedCodeDebugRegisterMatches, // XXTF - ToBeDone - (IA64_TAGGED_INSTRS_RETIRED)
  203. MercedDataDebugRegisterMatches, // XXTF - ToBeDone - (LOADS_RETIRED + STORES_RETIRED)
  204. MercedControlSpeculationMissRatio, // XXTF - ToBeDone - (INST_FAILED_CHKS_RETIRED / IA64_TAGGED_INSTRS_RETIRED[chk.s])
  205. MercedDataSpeculationMissRatio, // XXTF - ToBeDone - (ALAT_INST_FAILED_CHKA_LDC / ALAT_INST_CHKA_LDC)
  206. MercedALATCapacityMissRatio, // XXTF - ToBeDone - (ALAT_CAPACITY_MISS / IA64_TAGGED_INSTRS_RETIRED[ld.sa,ld.a,ldfp.a,ldfp.sa])
  207. MercedL1DataWayMispredicts, // XXTF - ToBeDone - (EventCode: 0x33 / Umask: 0x2)
  208. MercedL2InstReferences, // XXTF - ToBeDone - (L1I_MISSES + L2_INST_PREFETCHES)
  209. MercedInstFetches, // XXTF - ToBeDone - (L1I_MISSES)
  210. MercedL2DataReads, // XXTF - ToBeDone - (L2_DATA_REFERENCES/0x1)
  211. MercedL2DataWrites, // XXTF - ToBeDone - (L2_DATA_REFERENCES/0x2)
  212. MercedL3InstReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  213. MercedL3InstMisses, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  214. MercedL3InstHits, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  215. MercedL3DataReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  216. MercedL3LoadReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  217. MercedL3LoadMisses, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  218. MercedL3LoadHits, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  219. MercedL3ReadReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  220. MercedL3ReadMisses, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  221. MercedL3ReadHits, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  222. MercedL3StoreReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  223. MercedL3StoreMisses, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  224. MercedL3StoreHits, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  225. MercedL2WriteBackReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  226. MercedL2WriteBackMisses, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  227. MercedL2WriteBackHits, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  228. MercedL2WriteReferences, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  229. MercedL2WriteMisses, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  230. MercedL2WriteHits, // XXTF - ToBeDone - (PMC.umask{17:16}HIT/MISS/ALL + PMC.umask{19:18})
  231. MercedBranchInstructions, // XXTF - ToBeDone - (TAGGED_INSTR + opcode)
  232. MercedIntegerInstructions, // XXTF - ToBeDone - (TAGGED_INSTR + opcode)
  233. MercedL1DataMisses, // XXTF - ToBeDone -
  234. } MERCED_DERIVED_EVENT;
  235. typedef enum _KPROFILE_MERCED_SOURCE {
  236. //
  237. // Profile Merced Monitored Events:
  238. //
  239. ProfileMercedMonitoredEventMinimum = ProfileMaximum + 0x1,
  240. ProfileMercedBranchMispredictStallCycles = ProfileMercedMonitoredEventMinimum,
  241. ProfileMercedInstAccessStallCycles,
  242. ProfileMercedExecLatencyStallCycles,
  243. ProfileMercedDataAccessStallCycles,
  244. ProfileMercedBranchStallCycles,
  245. ProfileMercedInstFetchStallCycles,
  246. ProfileMercedExecStallCycles,
  247. ProfileMercedMemoryStallCycles,
  248. ProfileMercedTaggedInstRetired,
  249. ProfileMercedInstRetired,
  250. ProfileMercedFPOperationsRetired,
  251. ProfileMercedFPFlushesToZero,
  252. ProfileMercedSIRFlushes,
  253. ProfileMercedBranchTakenDetail,
  254. ProfileMercedBranchMultiWayDetail,
  255. ProfileMercedBranchPathPrediction,
  256. ProfileMercedBranchMispredictDetail,
  257. ProfileMercedBranchEvents,
  258. ProfileMercedCpuCycles,
  259. ProfileMercedISATransitions,
  260. ProfileMercedIA32InstRetired,
  261. ProfileMercedL1InstReads,
  262. ProfileMercedL1InstFills,
  263. ProfileMercedL1InstMisses,
  264. ProfileMercedInstEAREvents,
  265. ProfileMercedL1InstPrefetches,
  266. ProfileMercedL2InstPrefetches,
  267. ProfileMercedInstStreamingBufferLinesIn,
  268. ProfileMercedInstTLBDemandFetchMisses,
  269. ProfileMercedInstTLBHPWInserts,
  270. ProfileMercedInstDispersed,
  271. ProfileMercedExplicitStops,
  272. ProfileMercedImplicitStops,
  273. ProfileMercedInstNOPRetired,
  274. ProfileMercedInstPredicateSquashedRetired,
  275. ProfileMercedRSELoadRetired,
  276. ProfileMercedPipelineFlushes,
  277. ProfileMercedCpuCPLChanges,
  278. ProfileMercedFailedSpeculativeCheckLoads,
  279. ProfileMercedAdvancedCheckLoads,
  280. ProfileMercedFailedAdvancedCheckLoads,
  281. ProfileMercedALATOverflows,
  282. ProfileMercedExternBPMPins03Asserted,
  283. ProfileMercedExternBPMPins45Asserted,
  284. ProfileMercedDataTCMisses,
  285. ProfileMercedDataTLBMisses,
  286. ProfileMercedDataTLBHPWInserts,
  287. ProfileMercedDataReferences,
  288. ProfileMercedL1DataReads,
  289. ProfileMercedRSEAccesses,
  290. ProfileMercedL1DataReadMisses,
  291. ProfileMercedL1DataEAREvents,
  292. ProfileMercedL2References,
  293. ProfileMercedL2DataReferences,
  294. ProfileMercedL2Misses,
  295. ProfileMercedL1DataForcedLoadMisses,
  296. ProfileMercedRetiredLoads,
  297. ProfileMercedRetiredStores,
  298. ProfileMercedRetiredUncacheableLoads,
  299. ProfileMercedRetiredUncacheableStores,
  300. ProfileMercedRetiredMisalignedLoads,
  301. ProfileMercedRetiredMisalignedStores,
  302. ProfileMercedL2Flushes,
  303. ProfileMercedL2FlushesDetail,
  304. ProfileMercedL3References,
  305. ProfileMercedL3Misses,
  306. ProfileMercedL3Reads,
  307. ProfileMercedL3Writes,
  308. ProfileMercedL3LinesReplaced,
  309. //
  310. // 02/08/00 - Are missing: [at least]
  311. // - Front-Side bus events,
  312. // - IVE events,
  313. // - Debug monitor events,
  314. // - ...
  315. //
  316. //
  317. // Profile Merced Derived Events:
  318. //
  319. ProfileMercedDerivedEventMinimum,
  320. ProfileMercedRSEStallCycles = ProfileMercedDerivedEventMinimum,
  321. ProfileMercedIssueLimitStallCycles,
  322. ProfileMercedTakenBranchStallCycles,
  323. ProfileMercedFetchWindowStallCycles,
  324. ProfileMercedIA64InstPerCycle,
  325. ProfileMercedIA32InstPerCycle,
  326. ProfileMercedAvgIA64InstPerTransition,
  327. ProfileMercedAvgIA32InstPerTransition,
  328. ProfileMercedAvgIA64CyclesPerTransition,
  329. ProfileMercedAvgIA32CyclesPerTransition,
  330. ProfileMercedL1InstReferences,
  331. ProfileMercedL1InstMissRatio,
  332. ProfileMercedL1DataReadMissRatio,
  333. ProfileMercedL2MissRatio,
  334. ProfileMercedL2DataMissRatio,
  335. ProfileMercedL2InstMissRatio,
  336. ProfileMercedL2DataReadMissRatio,
  337. ProfileMercedL2DataWriteMissRatio,
  338. ProfileMercedL2InstFetchRatio,
  339. ProfileMercedL2DataRatio,
  340. ProfileMercedL3MissRatio,
  341. ProfileMercedL3DataMissRatio,
  342. ProfileMercedL3InstMissRatio,
  343. ProfileMercedL3DataReadMissRatio,
  344. ProfileMercedL3DataRatio,
  345. ProfileMercedInstReferences,
  346. ProfileMercedInstTLBMissRatio,
  347. ProfileMercedDataTLBMissRatio,
  348. ProfileMercedDataTCMissRatio,
  349. ProfileMercedInstTLBEAREvents,
  350. ProfileMercedDataTLBEAREvents,
  351. ProfileMercedCodeDebugRegisterMatches,
  352. ProfileMercedDataDebugRegisterMatches,
  353. ProfileMercedControlSpeculationMissRatio,
  354. ProfileMercedDataSpeculationMissRatio,
  355. ProfileMercedALATCapacityMissRatio,
  356. ProfileMercedL1DataWayMispredicts,
  357. ProfileMercedL2InstReferences,
  358. ProfileMercedInstFetches,
  359. ProfileMercedL2DataReads,
  360. ProfileMercedL2DataWrites,
  361. ProfileMercedL3InstReferences,
  362. ProfileMercedL3InstMisses,
  363. ProfileMercedL3InstHits,
  364. ProfileMercedL3DataReferences,
  365. ProfileMercedL3LoadReferences,
  366. ProfileMercedL3LoadMisses,
  367. ProfileMercedL3LoadHits,
  368. ProfileMercedL3ReadReferences,
  369. ProfileMercedL3ReadMisses,
  370. ProfileMercedL3ReadHits,
  371. ProfileMercedL3StoreReferences,
  372. ProfileMercedL3StoreMisses,
  373. ProfileMercedL3StoreHits,
  374. ProfileMercedL2WriteBackReferences,
  375. ProfileMercedL2WriteBackMisses,
  376. ProfileMercedL2WriteBackHits,
  377. ProfileMercedL2WriteReferences,
  378. ProfileMercedL2WriteMisses,
  379. ProfileMercedL2WriteHits,
  380. ProfileMercedBranchInstructions,
  381. ProfileMercedIntegerInstructions,
  382. ProfileMercedL1DataMisses,
  383. ProfileMercedMaximum
  384. } KPROFILE_MERCED_SOURCE, *PKPROFILE_MERCED_SOURCE;
  385. #define ProfileIA64Maximum ProfileMercedMaximum
  386. #endif /* MERCED_H_INCLUDED */