Leaked source code of windows server 2003
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.

2157 lines
56 KiB

  1. /*++
  2. Copyright (c) 2002 Microsoft Corporation
  3. Module Name:
  4. amd64.h
  5. Abstract:
  6. This module contains function prototypes, declarations used by the
  7. profiling functions for the Amd64 platform
  8. Author:
  9. Steve Deng (sdeng) 18-Jun-2002
  10. Environment:
  11. Kernel mode only.
  12. --*/
  13. #ifndef _AMD64_H_
  14. #define _AMD64_H_
  15. //
  16. // Defines the attributes of counter registers
  17. //
  18. #define AMD64_NUMBER_COUNTERS 4 // number of performance counters
  19. #define AMD64_COUNTER_RESOLUTION 48 // resolution of performance counters
  20. //
  21. // Define constants for bits in PerfEvtSel register
  22. //
  23. #define EVENT_MASK(i) (i)
  24. #define UNIT_MASK(i) ((i) << 8)
  25. #define PERF_EVT_SEL_USER_COUNT (1 << 16)
  26. #define PERF_EVT_SEL_OS_COUNT (1 << 17)
  27. #define PERF_EVT_SEL_EDGE_DETECT (1 << 18)
  28. #define PERF_EVT_SEL_PIN_CONTROL (1 << 19)
  29. #define PERF_EVT_SEL_INTERRUPT (1 << 20)
  30. #define PERF_EVT_SEL_ENABLE (1 << 22)
  31. #define PERF_EVT_SEL_INVERT (1 << 23)
  32. #define PERF_EVT_SEL_COUNTER_MASK (0xf << 24)
  33. #define DEFAULT_METHOD ( PERF_EVT_SEL_USER_COUNT | \
  34. PERF_EVT_SEL_OS_COUNT & \
  35. ~PERF_EVT_SEL_EDGE_DETECT & \
  36. ~PERF_EVT_SEL_PIN_CONTROL & \
  37. ~PERF_EVT_SEL_INTERRUPT & \
  38. ~PERF_EVT_SEL_INVERT & \
  39. ~PERF_EVT_SEL_COUNTER_MASK )
  40. //
  41. // Some events are not supported in Rev A silicon but will be available in
  42. // Rev B. We temporarily mark these events as not supported.
  43. //
  44. #define NOT_SUPPORTED_IN_K8_REVA FALSE
  45. //
  46. // The data in this structure describes the the hardware aspects of
  47. // profile sources
  48. //
  49. typedef struct _AMD64_PROFILE_SOURCE_DESCRIPTOR {
  50. KPROFILE_SOURCE ProfileSource; // Profile source
  51. BOOLEAN Supported; // Is it supported
  52. ULONGLONG Interval; // Current Interval
  53. ULONGLONG DefInterval; // Default or Desired Interval
  54. ULONGLONG MaxInterval; // Maximum Interval
  55. ULONGLONG MinInterval; // Maximum Interval
  56. ULONG PerfEvtSelDef; // Default value of PerfEvtSel register
  57. PWSTR Description; // Mnemonic event name
  58. } AMD64_PROFILE_SOURCE_DESCRIPTOR, *PAMD64_PROFILE_SOURCE_DESCRIPTOR;
  59. #define AMD64_PROFILE_MINIMUM (ProfileMaximum + 1)
  60. typedef enum _AMD64_PROFILE_LIST {
  61. ProfileAmd64Minimum = AMD64_PROFILE_MINIMUM,
  62. ProfileFPDispatchedFPUOps = AMD64_PROFILE_MINIMUM,
  63. ProfileFPDispatchedFPUOpsAddExcludeJunk,
  64. ProfileFPDispatchedFPUOpsMulExcludeJunk,
  65. ProfileFPDispatchedFPUOpsStoreExcludeJunk,
  66. ProfileFPDispatchedFPUOpsAddJunk,
  67. ProfileFPDispatchedFPUOpsMulJunk,
  68. ProfileFPDispatchedFPUOpsStoreJunk,
  69. ProfileFPCyclesNoFPUOpsRetired,
  70. ProfileFPDispathedFPUOpsWithFastFlag,
  71. ProfileLSSegmentRegisterLoad,
  72. ProfileLSSegmentRegisterLoadES,
  73. ProfileLSSegmentRegisterLoadCS,
  74. ProfileLSSegmentRegisterLoadSS,
  75. ProfileLSSegmentRegisterLoadDS,
  76. ProfileLSSegmentRegisterLoadFS,
  77. ProfileLSSegmentRegisterLoadGS,
  78. ProfileLSSegmentRegisterLoadHS,
  79. ProfileLSResyncBySelfModifyingCode,
  80. ProfileLSResyncBySnoop,
  81. ProfileLSBuffer2Full,
  82. ProfileLSLockedOperation,
  83. ProfileLSLateCancelOperation,
  84. ProfileLSRetiredCFLUSH,
  85. ProfileLSRetiredCPUID,
  86. ProfileDCAccess,
  87. ProfileDCMiss,
  88. ProfileDCRefillFromL2,
  89. ProfileDCRefillFromL2Invalid,
  90. ProfileDCRefillFromL2Shared,
  91. ProfileDCRefillFromL2Exclusive,
  92. ProfileDCRefillFromL2Owner,
  93. ProfileDCRefillFromL2Modified,
  94. ProfileDCRefillFromSystem,
  95. ProfileDCRefillFromSystemInvalid,
  96. ProfileDCRefillFromSystemShared,
  97. ProfileDCRefillFromSystemExclusive,
  98. ProfileDCRefillFromSystemOwner,
  99. ProfileDCRefillFromSystemModified,
  100. ProfileDCRefillCopyBack,
  101. ProfileDCRefillCopyBackInvalid,
  102. ProfileDCRefillCopyBackShared,
  103. ProfileDCRefillCopyBackExclusive,
  104. ProfileDCRefillCopyBackOwner,
  105. ProfileDCRefillCopyBackModified,
  106. ProfileDCL1DTLBMissL2DTLBHit,
  107. ProfileDCL1DTLBMissL2DTLBMiss,
  108. ProfileDCMisalignedDataReference,
  109. ProfileDCLateCancelOfAnAccess,
  110. ProfileDCEarlyCancelOfAnAccess,
  111. ProfileDCOneBitECCError,
  112. ProfileDCOneBitECCErrorScrubberError,
  113. ProfileDCOneBitECCErrorPiggybackScrubberError,
  114. ProfileDCDispatchedPrefetchInstructions,
  115. ProfileDCDispatchedPrefetchInstructionsLoad,
  116. ProfileDCDispatchedPrefetchInstructionsStore,
  117. ProfileDCDispatchedPrefetchInstructionsNTA,
  118. ProfileBUInternalL2Request,
  119. ProfileBUInternalL2RequestICFill,
  120. ProfileBUInternalL2RequestDCFill,
  121. ProfileBUInternalL2RequestTLBReload,
  122. ProfileBUInternalL2RequestTagSnoopRequest,
  123. ProfileBUInternalL2RequestCancelledRequest,
  124. ProfileBUFillRequestMissedInL2,
  125. ProfileBUFillRequestMissedInL2ICFill,
  126. ProfileBUFillRequestMissedInL2DCFill,
  127. ProfileBUFillRequestMissedInL2TLBLoad,
  128. ProfileBUFillIntoL2,
  129. ProfileBUFillIntoL2DirtyL2Victim,
  130. ProfileBUFillIntoL2VictimFromL1,
  131. ProfileICFetch,
  132. ProfileICMiss,
  133. ProfileICRefillFromL2,
  134. ProfileICRefillFromSystem,
  135. ProfileICL1TLBMissL2TLBHit,
  136. ProfileICL1TLBMissL2TLBMiss,
  137. ProfileICResyncBySnoop,
  138. ProfileICInstructionFetchStall,
  139. ProfileICReturnStackHit,
  140. ProfileICReturnStackOverflow,
  141. ProfileFRRetiredx86Instructions,
  142. ProfileFRRetireduops,
  143. ProfileFRRetiredBranches,
  144. ProfileFRRetiredBranchesMispredicted,
  145. ProfileFRRetiredTakenBranches,
  146. ProfileFRRetiredTakenBranchesMispredicted,
  147. ProfileFRRetiredFarControlTransfers,
  148. ProfileFRRetiredResyncsNonControlTransferBranches,
  149. ProfileFRRetiredNearReturns,
  150. ProfileFRRetiredNearReturnsMispredicted,
  151. ProfileFRRetiredTakenBranchesMispredictedByAddressMiscompare,
  152. ProfileFRRetiredFPUInstructions,
  153. ProfileFRRetiredFPUInstructionsx87,
  154. ProfileFRRetiredFPUInstructionsMMXAnd3DNow,
  155. ProfileFRRetiredFPUInstructionsPackedSSEAndSSE2,
  156. ProfileFRRetiredFPUInstructionsScalarSSEAndSSE2,
  157. ProfileFRRetiredFastpathDoubleOpInstructions,
  158. ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition0,
  159. ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition1,
  160. ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition2,
  161. ProfileFRInterruptsMaskedCycles,
  162. ProfileFRInterruptsMaskedWhilePendingCycles,
  163. ProfileFRTakenHardwareInterrupts,
  164. ProfileFRNothingToDispatch,
  165. ProfileFRDispatchStalls,
  166. ProfileFRDispatchStallsFromBranchAbortToRetire,
  167. ProfileFRDispatchStallsForSerialization,
  168. ProfileFRDispatchStallsForSegmentLoad,
  169. ProfileFRDispatchStallsWhenReorderBufferFull,
  170. ProfileFRDispatchStallsWhenReservationStationsFull,
  171. ProfileFRDispatchStallsWhenFPUFull,
  172. ProfileFRDispatchStallsWhenLSFull,
  173. ProfileFRDispatchStallsWhenWaitingForAllQuiet,
  174. ProfileFRDispatchStallsWhenFarControlOrResyncBranchPending,
  175. ProfileFRFPUExceptions,
  176. ProfileFRFPUExceptionsx87ReclassMicroFaults,
  177. ProfileFRFPUExceptionsSSERetypeMicroFaults,
  178. ProfileFRFPUExceptionsSSEReclassMicroFaults,
  179. ProfileFRFPUExceptionsSSEAndx87MicroTraps,
  180. ProfileFRNumberOfBreakPointsForDR0,
  181. ProfileFRNumberOfBreakPointsForDR1,
  182. ProfileFRNumberOfBreakPointsForDR2,
  183. ProfileFRNumberOfBreakPointsForDR3,
  184. ProfileNBMemoryControllerPageAccessEvent,
  185. ProfileNBMemoryControllerPageAccessEventPageHit,
  186. ProfileNBMemoryControllerPageAccessEventPageMiss,
  187. ProfileNBMemoryControllerPageAccessEventPageConflict,
  188. ProfileNBMemoryControllerPageTableOverflow,
  189. ProfileNBMemoryControllerDRAMCommandSlotsMissed,
  190. ProfileNBMemoryControllerTurnAround,
  191. ProfileNBMemoryControllerTurnAroundDIMM,
  192. ProfileNBMemoryControllerTurnAroundReadToWrite,
  193. ProfileNBMemoryControllerTurnAroundWriteToRead,
  194. ProfileNBMemoryControllerBypassCounter,
  195. ProfileNBMemoryControllerBypassCounterHighPriority,
  196. ProfileNBMemoryControllerBypassCounterLowPriority,
  197. ProfileNBMemoryControllerBypassCounterDRAMControllerInterface,
  198. ProfileNBMemoryControllerBypassCounterDRAMControllerQueue,
  199. ProfileNBSizedCommands,
  200. ProfileNBSizedCommandsNonPostWrSzByte,
  201. ProfileNBSizedCommandsNonPostWrSzDword,
  202. ProfileNBSizedCommandsWrSzByte,
  203. ProfileNBSizedCommandsWrSzDword,
  204. ProfileNBSizedCommandsRdSzByte,
  205. ProfileNBSizedCommandsRdSzDword,
  206. ProfileNBSizedCommandsRdModWr,
  207. ProfileNBProbeResult,
  208. ProfileNBProbeResultMiss,
  209. ProfileNBProbeResultHit,
  210. ProfileNBProbeResultHitDirtyWithoutMemoryCancel,
  211. ProfileNBProbeResultHitDirtyWithMemoryCancel,
  212. ProfileNBHyperTransportBus0Bandwidth,
  213. ProfileNBHyperTransportBus0BandwidthCommandSent,
  214. ProfileNBHyperTransportBus0BandwidthDataSent,
  215. ProfileNBHyperTransportBus0BandwidthBufferReleaseSent,
  216. ProfileNBHyperTransportBus0BandwidthNopSent,
  217. ProfileNBHyperTransportBus1Bandwidth,
  218. ProfileNBHyperTransportBus1BandwidthCommandSent,
  219. ProfileNBHyperTransportBus1BandwidthDataSent,
  220. ProfileNBHyperTransportBus1BandwidthBufferReleaseSent,
  221. ProfileNBHyperTransportBus1BandwidthNopSent,
  222. ProfileNBHyperTransportBus2Bandwidth,
  223. ProfileNBHyperTransportBus2BandwidthCommandSent,
  224. ProfileNBHyperTransportBus2BandwidthDataSent,
  225. ProfileNBHyperTransportBus2BandwidthBufferReleaseSent,
  226. ProfileNBHyperTransportBus2BandwidthNopSent,
  227. ProfileAmd64Maximum
  228. } AMD64_PROFILE_LIST;
  229. AMD64_PROFILE_SOURCE_DESCRIPTOR
  230. Amd64ProfileSourceDescriptorTable[ProfileAmd64Maximum -
  231. ProfileAmd64Minimum +
  232. ProfileMaximum] = {
  233. {
  234. ProfileTime,
  235. TRUE,
  236. TIME_UNITS_PER_SECOND,
  237. TIME_UNITS_PER_SECOND,
  238. TIME_UNITS_PER_SECOND,
  239. 1221,
  240. 0,
  241. L"Timer"
  242. },
  243. {
  244. ProfileAlignmentFixup,
  245. FALSE,
  246. 0,
  247. 0,
  248. 0,
  249. 0,
  250. 0,
  251. L"AlignmentFixup"
  252. },
  253. {
  254. ProfileTotalIssues, // Same as ProfileFRRetiredx86Instructions
  255. TRUE,
  256. 0x10000,
  257. 0x10000,
  258. 0x10000,
  259. 0x10,
  260. EVENT_MASK(0xc0) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  261. L"TotalIssues"
  262. },
  263. {
  264. ProfilePipelineDry,
  265. FALSE,
  266. 0,
  267. 0,
  268. 0,
  269. 0,
  270. 0,
  271. L"PipelineDry"
  272. },
  273. {
  274. ProfileLoadInstructions,
  275. FALSE,
  276. 0,
  277. 0,
  278. 0,
  279. 0,
  280. 0,
  281. L"LoadInstructions"
  282. },
  283. {
  284. ProfilePipelineFrozen,
  285. FALSE,
  286. 0,
  287. 0,
  288. 0,
  289. 0,
  290. 0,
  291. L"PipelineFrozen"
  292. },
  293. {
  294. ProfileBranchInstructions, // Same as ProfileFRRetiredBranches
  295. TRUE,
  296. 0x10000,
  297. 0x10000,
  298. 0x10000,
  299. 0x10,
  300. EVENT_MASK(0xc2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  301. L"BranchInstructions"
  302. },
  303. {
  304. ProfileTotalNonissues,
  305. FALSE,
  306. 0,
  307. 0,
  308. 0,
  309. 0,
  310. 0,
  311. L"TotalNonissues"
  312. },
  313. {
  314. ProfileDcacheMisses, // Same as ProfileDCMiss
  315. TRUE,
  316. 0x10000,
  317. 0x10000,
  318. 0x10000,
  319. 0x10,
  320. EVENT_MASK(0x41) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  321. L"DcacheMisses"
  322. },
  323. {
  324. ProfileIcacheMisses, // Same as ProfileICMiss
  325. TRUE,
  326. 0x10000,
  327. 0x10000,
  328. 0x10000,
  329. 0x10,
  330. EVENT_MASK(0x81) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  331. L"IcacheMisses"
  332. },
  333. {
  334. ProfileCacheMisses,
  335. FALSE,
  336. 0,
  337. 0,
  338. 0,
  339. 0,
  340. 0,
  341. L"CacheMisses"
  342. },
  343. {
  344. ProfileBranchMispredictions, // Same as ProfileFRRetiredBranchesMispredicted
  345. TRUE,
  346. 0x10000,
  347. 0x10000,
  348. 0x10000,
  349. 0x10,
  350. EVENT_MASK(0xc3) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  351. L"BranchMispredictions"
  352. },
  353. {
  354. ProfileStoreInstructions,
  355. FALSE,
  356. 0,
  357. 0,
  358. 0,
  359. 0,
  360. 0,
  361. L"StoreInstructions"
  362. },
  363. {
  364. ProfileFpInstructions, // Same as ProfileFRRetiredFPUInstructions
  365. NOT_SUPPORTED_IN_K8_REVA,
  366. 0x10000,
  367. 0x10000,
  368. 0x10000,
  369. 0x10,
  370. EVENT_MASK(0xcb) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  371. L"FpInstructions"
  372. },
  373. {
  374. ProfileIntegerInstructions,
  375. FALSE,
  376. 0,
  377. 0,
  378. 0,
  379. 0,
  380. 0,
  381. L"IntegerInstructions"
  382. },
  383. {
  384. Profile2Issue,
  385. FALSE,
  386. 0,
  387. 0,
  388. 0,
  389. 0,
  390. 0,
  391. L"2Issue"
  392. },
  393. {
  394. Profile3Issue,
  395. FALSE,
  396. 0,
  397. 0,
  398. 0,
  399. 0,
  400. 0,
  401. L"3Issue"
  402. },
  403. {
  404. Profile4Issue,
  405. FALSE,
  406. 0,
  407. 0,
  408. 0,
  409. 0,
  410. 0,
  411. L"4Issue"
  412. },
  413. {
  414. ProfileSpecialInstructions,
  415. FALSE,
  416. 0,
  417. 0,
  418. 0,
  419. 0,
  420. 0,
  421. L"SpecialInstructions"
  422. },
  423. {
  424. ProfileTotalCycles,
  425. FALSE,
  426. 0,
  427. 0,
  428. 0,
  429. 0,
  430. 0,
  431. L"TotalCycles"
  432. },
  433. {
  434. ProfileIcacheIssues, // Same as ProfileICFetch
  435. TRUE,
  436. 0x10000,
  437. 0x10000,
  438. 0x10000,
  439. 0x10,
  440. EVENT_MASK(0x80) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  441. L"IcacheIssues"
  442. },
  443. {
  444. ProfileDcacheAccesses, // Same as ProfileDCAccess
  445. TRUE,
  446. 0x10000,
  447. 0x10000,
  448. 0x10000,
  449. 0x10,
  450. EVENT_MASK(0x40) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  451. L"DcacheAccesses"
  452. },
  453. {
  454. ProfileMemoryBarrierCycles,
  455. FALSE,
  456. 0,
  457. 0,
  458. 0,
  459. 0,
  460. 0,
  461. L"MemoryBarrierCycles"
  462. },
  463. {
  464. ProfileLoadLinkedIssues,
  465. FALSE,
  466. 0,
  467. 0,
  468. 0,
  469. 0,
  470. 0,
  471. L"LoadLinkedIssues"
  472. },
  473. //
  474. // End of generic profile sources. Everything below is Amd64 specific.
  475. //
  476. // IMPORTANT NOTE: The order of the structures below should be
  477. // exactly the same as the order of the the profile sources defined
  478. // in _AMD64_PROFILE_LIST. The code in HalpGetProfileDescriptor
  479. // relies on this assumption.
  480. //
  481. {
  482. ProfileFPDispatchedFPUOps,
  483. NOT_SUPPORTED_IN_K8_REVA,
  484. 0x10000,
  485. 0x10000,
  486. 0x10000,
  487. 0x10,
  488. EVENT_MASK(0x00) | UNIT_MASK(0x3f) | DEFAULT_METHOD,
  489. L"FPDispatchedFPUOps"
  490. },
  491. {
  492. ProfileFPDispatchedFPUOpsAddExcludeJunk,
  493. NOT_SUPPORTED_IN_K8_REVA,
  494. 0x10000,
  495. 0x10000,
  496. 0x10000,
  497. 0x10,
  498. EVENT_MASK(0x00) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  499. L"FPDispatchedFPUOpsAddExcludeJunk"
  500. },
  501. {
  502. ProfileFPDispatchedFPUOpsMulExcludeJunk,
  503. NOT_SUPPORTED_IN_K8_REVA,
  504. 0x10000,
  505. 0x10000,
  506. 0x10000,
  507. 0x10,
  508. EVENT_MASK(0x00) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  509. L"FPDispatchedFPUOpsMulExcludeJunk"
  510. },
  511. {
  512. ProfileFPDispatchedFPUOpsStoreExcludeJunk,
  513. NOT_SUPPORTED_IN_K8_REVA,
  514. 0x10000,
  515. 0x10000,
  516. 0x10000,
  517. 0x10,
  518. EVENT_MASK(0x00) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  519. L"FPDispatchedFPUOpsStoreExcludeJunk"
  520. },
  521. {
  522. ProfileFPDispatchedFPUOpsAddJunk,
  523. NOT_SUPPORTED_IN_K8_REVA,
  524. 0x10000,
  525. 0x10000,
  526. 0x10000,
  527. 0x10,
  528. EVENT_MASK(0x00) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  529. L"FPDispatchedFPUOpsAddJunk"
  530. },
  531. {
  532. ProfileFPDispatchedFPUOpsMulJunk,
  533. NOT_SUPPORTED_IN_K8_REVA,
  534. 0x10000,
  535. 0x10000,
  536. 0x10000,
  537. 0x10,
  538. EVENT_MASK(0x00) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  539. L"FPDispatchedFPUOpsMulJunk"
  540. },
  541. {
  542. ProfileFPDispatchedFPUOpsStoreJunk,
  543. NOT_SUPPORTED_IN_K8_REVA,
  544. 0x10000,
  545. 0x10000,
  546. 0x10000,
  547. 0x10,
  548. EVENT_MASK(0x00) | UNIT_MASK(0x20) | DEFAULT_METHOD,
  549. L"FPDispatchedFPUOpsStoreJunk"
  550. },
  551. {
  552. ProfileFPCyclesNoFPUOpsRetired,
  553. NOT_SUPPORTED_IN_K8_REVA,
  554. 0x10000,
  555. 0x10000,
  556. 0x10000,
  557. 0x10,
  558. EVENT_MASK(0x01) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  559. L"FPCyclesNoFPUOpsRetired"
  560. },
  561. {
  562. ProfileFPDispathedFPUOpsWithFastFlag,
  563. NOT_SUPPORTED_IN_K8_REVA,
  564. 0x10000,
  565. 0x10000,
  566. 0x10000,
  567. 0x10,
  568. EVENT_MASK(0x02) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  569. L"FPDispathedFPUOpsWithFastFlag"
  570. },
  571. {
  572. ProfileLSSegmentRegisterLoad,
  573. TRUE,
  574. 0x10000,
  575. 0x10000,
  576. 0x10000,
  577. 0x10,
  578. EVENT_MASK(0x20) | UNIT_MASK(0x7f) | DEFAULT_METHOD,
  579. L"LSSegmentRegisterLoad"
  580. },
  581. {
  582. ProfileLSSegmentRegisterLoadES,
  583. TRUE,
  584. 0x10000,
  585. 0x10000,
  586. 0x10000,
  587. 0x10,
  588. EVENT_MASK(0x20) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  589. L"LSSegmentRegisterLoadES"
  590. },
  591. {
  592. ProfileLSSegmentRegisterLoadCS,
  593. TRUE,
  594. 0x10000,
  595. 0x10000,
  596. 0x10000,
  597. 0x10,
  598. EVENT_MASK(0x20) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  599. L"LSSegmentRegisterLoadCS"
  600. },
  601. {
  602. ProfileLSSegmentRegisterLoadSS,
  603. TRUE,
  604. 0x10000,
  605. 0x10000,
  606. 0x10000,
  607. 0x10,
  608. EVENT_MASK(0x20) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  609. L"LSSegmentRegisterLoadSS"
  610. },
  611. {
  612. ProfileLSSegmentRegisterLoadDS,
  613. TRUE,
  614. 0x10000,
  615. 0x10000,
  616. 0x10000,
  617. 0x10,
  618. EVENT_MASK(0x20) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  619. L"LSSegmentRegisterLoadDS"
  620. },
  621. {
  622. ProfileLSSegmentRegisterLoadFS,
  623. TRUE,
  624. 0x10000,
  625. 0x10000,
  626. 0x10000,
  627. 0x10,
  628. EVENT_MASK(0x20) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  629. L"LSSegmentRegisterLoadFS"
  630. },
  631. {
  632. ProfileLSSegmentRegisterLoadGS,
  633. TRUE,
  634. 0x10000,
  635. 0x10000,
  636. 0x10000,
  637. 0x10,
  638. EVENT_MASK(0x20) | UNIT_MASK(0x20) | DEFAULT_METHOD,
  639. L"LSSegmentRegisterLoadGS"
  640. },
  641. {
  642. ProfileLSSegmentRegisterLoadHS,
  643. TRUE,
  644. 0x10000,
  645. 0x10000,
  646. 0x10000,
  647. 0x10,
  648. EVENT_MASK(0x20) | UNIT_MASK(0x40) | DEFAULT_METHOD,
  649. L"LSSegmentRegisterLoadHS"
  650. },
  651. {
  652. ProfileLSResyncBySelfModifyingCode,
  653. TRUE,
  654. 0x10000,
  655. 0x10000,
  656. 0x10000,
  657. 0x10,
  658. EVENT_MASK(0x21) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  659. L"LSResyncBySelfModifyingCode"
  660. },
  661. {
  662. ProfileLSResyncBySnoop,
  663. TRUE,
  664. 0x10000,
  665. 0x10000,
  666. 0x10000,
  667. 0x10,
  668. EVENT_MASK(0x22) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  669. L"LSResyncBySnoop"
  670. },
  671. {
  672. ProfileLSBuffer2Full,
  673. TRUE,
  674. 0x10000,
  675. 0x10000,
  676. 0x10000,
  677. 0x10,
  678. EVENT_MASK(0x23) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  679. L"LSBuffer2Full"
  680. },
  681. {
  682. ProfileLSLockedOperation,
  683. TRUE,
  684. 0x10000,
  685. 0x10000,
  686. 0x10000,
  687. 0x10,
  688. EVENT_MASK(0x24) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  689. L"LSLockedOperation"
  690. },
  691. {
  692. ProfileLSLateCancelOperation,
  693. TRUE,
  694. 0x10000,
  695. 0x10000,
  696. 0x10000,
  697. 0x10,
  698. EVENT_MASK(0x25) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  699. L"LSLateCancelOperation"
  700. },
  701. {
  702. ProfileLSRetiredCFLUSH,
  703. NOT_SUPPORTED_IN_K8_REVA,
  704. 0x10000,
  705. 0x10000,
  706. 0x10000,
  707. 0x10,
  708. EVENT_MASK(0x26) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  709. L"LSRetiredCFLUSH"
  710. },
  711. {
  712. ProfileLSRetiredCPUID,
  713. NOT_SUPPORTED_IN_K8_REVA,
  714. 0x10000,
  715. 0x10000,
  716. 0x10000,
  717. 0x10,
  718. EVENT_MASK(0x27) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  719. L"LSRetiredCPUID"
  720. },
  721. {
  722. ProfileDCAccess,
  723. TRUE,
  724. 0x10000,
  725. 0x10000,
  726. 0x10000,
  727. 0x10,
  728. EVENT_MASK(0x40) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  729. L"DCAccess"
  730. },
  731. {
  732. ProfileDCMiss,
  733. TRUE,
  734. 0x10000,
  735. 0x10000,
  736. 0x10000,
  737. 0x10,
  738. EVENT_MASK(0x41) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  739. L"DCMiss"
  740. },
  741. {
  742. ProfileDCRefillFromL2,
  743. TRUE,
  744. 0x10000,
  745. 0x10000,
  746. 0x10000,
  747. 0x10,
  748. EVENT_MASK(0x42) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
  749. L"DCRefillFromL2"
  750. },
  751. {
  752. ProfileDCRefillFromL2Invalid,
  753. TRUE,
  754. 0x10000,
  755. 0x10000,
  756. 0x10000,
  757. 0x10,
  758. EVENT_MASK(0x42) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  759. L"DCRefillFromL2Invalid"
  760. },
  761. {
  762. ProfileDCRefillFromL2Shared,
  763. TRUE,
  764. 0x10000,
  765. 0x10000,
  766. 0x10000,
  767. 0x10,
  768. EVENT_MASK(0x42) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  769. L"DCRefillFromL2Shared"
  770. },
  771. {
  772. ProfileDCRefillFromL2Exclusive,
  773. TRUE,
  774. 0x10000,
  775. 0x10000,
  776. 0x10000,
  777. 0x10,
  778. EVENT_MASK(0x42) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  779. L"DCRefillFromL2Exclusive"
  780. },
  781. {
  782. ProfileDCRefillFromL2Owner,
  783. TRUE,
  784. 0x10000,
  785. 0x10000,
  786. 0x10000,
  787. 0x10,
  788. EVENT_MASK(0x42) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  789. L"DCRefillFromL2Owner"
  790. },
  791. {
  792. ProfileDCRefillFromL2Modified,
  793. TRUE,
  794. 0x10000,
  795. 0x10000,
  796. 0x10000,
  797. 0x10,
  798. EVENT_MASK(0x42) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  799. L"DCRefillFromL2Modified"
  800. },
  801. {
  802. ProfileDCRefillFromSystem,
  803. TRUE,
  804. 0x10000,
  805. 0x10000,
  806. 0x10000,
  807. 0x10,
  808. EVENT_MASK(0x43) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
  809. L"DCRefillFromSystem"
  810. },
  811. {
  812. ProfileDCRefillFromSystemInvalid,
  813. TRUE,
  814. 0x10000,
  815. 0x10000,
  816. 0x10000,
  817. 0x10,
  818. EVENT_MASK(0x43) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  819. L"DCRefillFromSystemInvalid"
  820. },
  821. {
  822. ProfileDCRefillFromSystemShared,
  823. TRUE,
  824. 0x10000,
  825. 0x10000,
  826. 0x10000,
  827. 0x10,
  828. EVENT_MASK(0x43) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  829. L"DCRefillFromSystemShared"
  830. },
  831. {
  832. ProfileDCRefillFromSystemExclusive,
  833. TRUE,
  834. 0x10000,
  835. 0x10000,
  836. 0x10000,
  837. 0x10,
  838. EVENT_MASK(0x43) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  839. L"DCRefillFromSystemExclusive"
  840. },
  841. {
  842. ProfileDCRefillFromSystemOwner,
  843. TRUE,
  844. 0x10000,
  845. 0x10000,
  846. 0x10000,
  847. 0x10,
  848. EVENT_MASK(0x43) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  849. L"DCRefillFromSystemOwner"
  850. },
  851. {
  852. ProfileDCRefillFromSystemModified,
  853. TRUE,
  854. 0x10000,
  855. 0x10000,
  856. 0x10000,
  857. 0x10,
  858. EVENT_MASK(0x43) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  859. L"DCRefillFromSystemModified"
  860. },
  861. {
  862. ProfileDCRefillCopyBack,
  863. TRUE,
  864. 0x10000,
  865. 0x10000,
  866. 0x10000,
  867. 0x10,
  868. EVENT_MASK(0x44) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
  869. L"DCRefillCopyBack"
  870. },
  871. {
  872. ProfileDCRefillCopyBackInvalid,
  873. TRUE,
  874. 0x10000,
  875. 0x10000,
  876. 0x10000,
  877. 0x10,
  878. EVENT_MASK(0x44) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  879. L"DCRefillCopyBackInvalid"
  880. },
  881. {
  882. ProfileDCRefillCopyBackShared,
  883. TRUE,
  884. 0x10000,
  885. 0x10000,
  886. 0x10000,
  887. 0x10,
  888. EVENT_MASK(0x44) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  889. L"DCRefillCopyBackShared"
  890. },
  891. {
  892. ProfileDCRefillCopyBackExclusive,
  893. TRUE,
  894. 0x10000,
  895. 0x10000,
  896. 0x10000,
  897. 0x10,
  898. EVENT_MASK(0x44) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  899. L"DCRefillCopyBackExclusive"
  900. },
  901. {
  902. ProfileDCRefillCopyBackOwner,
  903. TRUE,
  904. 0x10000,
  905. 0x10000,
  906. 0x10000,
  907. 0x10,
  908. EVENT_MASK(0x44) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  909. L"DCRefillCopyBackOwner"
  910. },
  911. {
  912. ProfileDCRefillCopyBackModified,
  913. TRUE,
  914. 0x10000,
  915. 0x10000,
  916. 0x10000,
  917. 0x10,
  918. EVENT_MASK(0x44) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  919. L"DCRefillCopyBackModified"
  920. },
  921. {
  922. ProfileDCL1DTLBMissL2DTLBHit,
  923. TRUE,
  924. 0x10000,
  925. 0x10000,
  926. 0x10000,
  927. 0x10,
  928. EVENT_MASK(0x45) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  929. L"DCL1DTLBMissL2DTLBHit"
  930. },
  931. {
  932. ProfileDCL1DTLBMissL2DTLBMiss,
  933. TRUE,
  934. 0x10000,
  935. 0x10000,
  936. 0x10000,
  937. 0x10,
  938. EVENT_MASK(0x46) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  939. L"DCL1DTLBMissL2DTLBMiss"
  940. },
  941. {
  942. ProfileDCMisalignedDataReference,
  943. TRUE,
  944. 0x10000,
  945. 0x10000,
  946. 0x10000,
  947. 0x10,
  948. EVENT_MASK(0x47) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  949. L"DCMisalignedDataReference"
  950. },
  951. {
  952. ProfileDCLateCancelOfAnAccess,
  953. TRUE,
  954. 0x10000,
  955. 0x10000,
  956. 0x10000,
  957. 0x10,
  958. EVENT_MASK(0x48) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  959. L"DCLateCancelOfAnAccess"
  960. },
  961. {
  962. ProfileDCEarlyCancelOfAnAccess,
  963. TRUE,
  964. 0x10000,
  965. 0x10000,
  966. 0x10000,
  967. 0x10,
  968. EVENT_MASK(0x49) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  969. L"DCEarlyCancelOfAnAccess"
  970. },
  971. {
  972. ProfileDCOneBitECCError,
  973. TRUE,
  974. 0x10000,
  975. 0x10000,
  976. 0x10000,
  977. 0x10,
  978. EVENT_MASK(0x4a) | UNIT_MASK(0x03) | DEFAULT_METHOD,
  979. L"DCOneBitECCError"
  980. },
  981. {
  982. ProfileDCOneBitECCErrorScrubberError,
  983. TRUE,
  984. 0x10000,
  985. 0x10000,
  986. 0x10000,
  987. 0x10,
  988. EVENT_MASK(0x4a) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  989. L"DCOneBitECCErrorScrubberError"
  990. },
  991. {
  992. ProfileDCOneBitECCErrorPiggybackScrubberError,
  993. TRUE,
  994. 0x10000,
  995. 0x10000,
  996. 0x10000,
  997. 0x10,
  998. EVENT_MASK(0x4a) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  999. L"DCOneBitECCErrorPiggybackScrubberError"
  1000. },
  1001. {
  1002. ProfileDCDispatchedPrefetchInstructions,
  1003. TRUE,
  1004. 0x10000,
  1005. 0x10000,
  1006. 0x10000,
  1007. 0x10,
  1008. EVENT_MASK(0x4b) | UNIT_MASK(0x07) | DEFAULT_METHOD,
  1009. L"DCDispatchedPrefetchInstructions"
  1010. },
  1011. {
  1012. ProfileDCDispatchedPrefetchInstructionsLoad,
  1013. TRUE,
  1014. 0x10000,
  1015. 0x10000,
  1016. 0x10000,
  1017. 0x10,
  1018. EVENT_MASK(0x4b) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1019. L"DCDispatchedPrefetchInstructionsLoad"
  1020. },
  1021. {
  1022. ProfileDCDispatchedPrefetchInstructionsStore,
  1023. TRUE,
  1024. 0x10000,
  1025. 0x10000,
  1026. 0x10000,
  1027. 0x10,
  1028. EVENT_MASK(0x4b) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1029. L"DCDispatchedPrefetchInstructionsStore"
  1030. },
  1031. {
  1032. ProfileDCDispatchedPrefetchInstructionsNTA,
  1033. TRUE,
  1034. 0x10000,
  1035. 0x10000,
  1036. 0x10000,
  1037. 0x10,
  1038. EVENT_MASK(0x4b) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1039. L"DCDispatchedPrefetchInstructionsNTA"
  1040. },
  1041. {
  1042. ProfileBUInternalL2Request,
  1043. TRUE,
  1044. 0x10000,
  1045. 0x10000,
  1046. 0x10000,
  1047. 0x10,
  1048. EVENT_MASK(0x7d) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
  1049. L"BUInternalL2Request"
  1050. },
  1051. {
  1052. ProfileBUInternalL2RequestICFill,
  1053. TRUE,
  1054. 0x10000,
  1055. 0x10000,
  1056. 0x10000,
  1057. 0x10,
  1058. EVENT_MASK(0x7d) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1059. L"BUInternalL2RequestICFill"
  1060. },
  1061. {
  1062. ProfileBUInternalL2RequestDCFill,
  1063. TRUE,
  1064. 0x10000,
  1065. 0x10000,
  1066. 0x10000,
  1067. 0x10,
  1068. EVENT_MASK(0x7d) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1069. L"BUInternalL2RequestDCFill"
  1070. },
  1071. {
  1072. ProfileBUInternalL2RequestTLBReload,
  1073. TRUE,
  1074. 0x10000,
  1075. 0x10000,
  1076. 0x10000,
  1077. 0x10,
  1078. EVENT_MASK(0x7d) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1079. L"BUInternalL2RequestTLBReload"
  1080. },
  1081. {
  1082. ProfileBUInternalL2RequestTagSnoopRequest,
  1083. TRUE,
  1084. 0x10000,
  1085. 0x10000,
  1086. 0x10000,
  1087. 0x10,
  1088. EVENT_MASK(0x7d) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  1089. L"BUInternalL2RequestTagSnoopRequest"
  1090. },
  1091. {
  1092. ProfileBUInternalL2RequestCancelledRequest,
  1093. TRUE,
  1094. 0x10000,
  1095. 0x10000,
  1096. 0x10000,
  1097. 0x10,
  1098. EVENT_MASK(0x7d) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  1099. L"BUInternalL2RequestCancelledRequest"
  1100. },
  1101. {
  1102. ProfileBUFillRequestMissedInL2,
  1103. TRUE,
  1104. 0x10000,
  1105. 0x10000,
  1106. 0x10000,
  1107. 0x10,
  1108. EVENT_MASK(0x7e) | UNIT_MASK(0x07) | DEFAULT_METHOD,
  1109. L"BUFillRequestMissedInL2"
  1110. },
  1111. {
  1112. ProfileBUFillRequestMissedInL2ICFill,
  1113. TRUE,
  1114. 0x10000,
  1115. 0x10000,
  1116. 0x10000,
  1117. 0x10,
  1118. EVENT_MASK(0x7e) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1119. L"BUFillRequestMissedInL2ICFill"
  1120. },
  1121. {
  1122. ProfileBUFillRequestMissedInL2DCFill,
  1123. TRUE,
  1124. 0x10000,
  1125. 0x10000,
  1126. 0x10000,
  1127. 0x10,
  1128. EVENT_MASK(0x7e) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1129. L"BUFillRequestMissedInL2DCFill"
  1130. },
  1131. {
  1132. ProfileBUFillRequestMissedInL2TLBLoad,
  1133. TRUE,
  1134. 0x10000,
  1135. 0x10000,
  1136. 0x10000,
  1137. 0x10,
  1138. EVENT_MASK(0x7e) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1139. L"BUFillRequestMissedInL2TLBLoad"
  1140. },
  1141. {
  1142. ProfileBUFillIntoL2,
  1143. TRUE,
  1144. 0x10000,
  1145. 0x10000,
  1146. 0x10000,
  1147. 0x10,
  1148. EVENT_MASK(0x7f) | UNIT_MASK(0x03) | DEFAULT_METHOD,
  1149. L"BUFillIntoL2"
  1150. },
  1151. {
  1152. ProfileBUFillIntoL2DirtyL2Victim,
  1153. TRUE,
  1154. 0x10000,
  1155. 0x10000,
  1156. 0x10000,
  1157. 0x10,
  1158. EVENT_MASK(0x7f) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1159. L"BUFillIntoL2DirtyL2Victim"
  1160. },
  1161. {
  1162. ProfileBUFillIntoL2VictimFromL1,
  1163. TRUE,
  1164. 0x10000,
  1165. 0x10000,
  1166. 0x10000,
  1167. 0x10,
  1168. EVENT_MASK(0x7f) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1169. L"BUFillIntoL2VictimFromL1"
  1170. },
  1171. {
  1172. ProfileICFetch,
  1173. TRUE,
  1174. 0x10000,
  1175. 0x10000,
  1176. 0x10000,
  1177. 0x10,
  1178. EVENT_MASK(0x80) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1179. L"ICFetch"
  1180. },
  1181. {
  1182. ProfileICMiss,
  1183. TRUE,
  1184. 0x10000,
  1185. 0x10000,
  1186. 0x10000,
  1187. 0x10,
  1188. EVENT_MASK(0x81) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1189. L"ICMiss"
  1190. },
  1191. {
  1192. ProfileICRefillFromL2,
  1193. TRUE,
  1194. 0x10000,
  1195. 0x10000,
  1196. 0x10000,
  1197. 0x10,
  1198. EVENT_MASK(0x82) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1199. L"ICRefillFromL2"
  1200. },
  1201. {
  1202. ProfileICRefillFromSystem,
  1203. TRUE,
  1204. 0x10000,
  1205. 0x10000,
  1206. 0x10000,
  1207. 0x10,
  1208. EVENT_MASK(0x83) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1209. L"ICRefillFromSystem"
  1210. },
  1211. {
  1212. ProfileICL1TLBMissL2TLBHit,
  1213. TRUE,
  1214. 0x10000,
  1215. 0x10000,
  1216. 0x10000,
  1217. 0x10,
  1218. EVENT_MASK(0x84) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1219. L"ICL1TLBMissL2TLBHit"
  1220. },
  1221. {
  1222. ProfileICL1TLBMissL2TLBMiss,
  1223. TRUE,
  1224. 0x10000,
  1225. 0x10000,
  1226. 0x10000,
  1227. 0x10,
  1228. EVENT_MASK(0x85) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1229. L"ICL1TLBMissL2TLBMiss"
  1230. },
  1231. {
  1232. ProfileICResyncBySnoop,
  1233. TRUE,
  1234. 0x10000,
  1235. 0x10000,
  1236. 0x10000,
  1237. 0x10,
  1238. EVENT_MASK(0x86) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1239. L"ICResyncBySnoop"
  1240. },
  1241. {
  1242. ProfileICInstructionFetchStall,
  1243. TRUE,
  1244. 0x10000,
  1245. 0x10000,
  1246. 0x10000,
  1247. 0x10,
  1248. EVENT_MASK(0x87) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1249. L"ICInstructionFetchStall"
  1250. },
  1251. {
  1252. ProfileICReturnStackHit,
  1253. TRUE,
  1254. 0x10000,
  1255. 0x10000,
  1256. 0x10000,
  1257. 0x10,
  1258. EVENT_MASK(0x88) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1259. L"ICReturnStackHit"
  1260. },
  1261. {
  1262. ProfileICReturnStackOverflow,
  1263. TRUE,
  1264. 0x10000,
  1265. 0x10000,
  1266. 0x10000,
  1267. 0x10,
  1268. EVENT_MASK(0x89) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1269. L"ICReturnStackOverflow"
  1270. },
  1271. {
  1272. ProfileFRRetiredx86Instructions,
  1273. TRUE,
  1274. 0x10000,
  1275. 0x10000,
  1276. 0x10000,
  1277. 0x10,
  1278. EVENT_MASK(0xc0) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1279. L"FRRetiredx86Instructions"
  1280. },
  1281. {
  1282. ProfileFRRetireduops,
  1283. TRUE,
  1284. 0x10000,
  1285. 0x10000,
  1286. 0x10000,
  1287. 0x10,
  1288. EVENT_MASK(0xc1) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1289. L"FRRetireduops"
  1290. },
  1291. {
  1292. ProfileFRRetiredBranches,
  1293. TRUE,
  1294. 0x10000,
  1295. 0x10000,
  1296. 0x10000,
  1297. 0x10,
  1298. EVENT_MASK(0xc2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1299. L"FRRetiredBranches"
  1300. },
  1301. {
  1302. ProfileFRRetiredBranchesMispredicted,
  1303. TRUE,
  1304. 0x10000,
  1305. 0x10000,
  1306. 0x10000,
  1307. 0x10,
  1308. EVENT_MASK(0xc3) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1309. L"FRRetiredBranchesMispredicted"
  1310. },
  1311. {
  1312. ProfileFRRetiredTakenBranches,
  1313. TRUE,
  1314. 0x10000,
  1315. 0x10000,
  1316. 0x10000,
  1317. 0x10,
  1318. EVENT_MASK(0xc4) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1319. L"FRRetiredTakenBranches"
  1320. },
  1321. {
  1322. ProfileFRRetiredTakenBranchesMispredicted,
  1323. TRUE,
  1324. 0x10000,
  1325. 0x10000,
  1326. 0x10000,
  1327. 0x10,
  1328. EVENT_MASK(0xc5) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1329. L"FRRetiredTakenBranchesMispredicted"
  1330. },
  1331. {
  1332. ProfileFRRetiredFarControlTransfers,
  1333. TRUE,
  1334. 0x10000,
  1335. 0x10000,
  1336. 0x10000,
  1337. 0x10,
  1338. EVENT_MASK(0xc6) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1339. L"FRRetiredFarControlTransfers"
  1340. },
  1341. {
  1342. ProfileFRRetiredResyncsNonControlTransferBranches,
  1343. TRUE,
  1344. 0x10000,
  1345. 0x10000,
  1346. 0x10000,
  1347. 0x10,
  1348. EVENT_MASK(0xc7) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1349. L"FRRetiredResyncsNonControlTransferBranches"
  1350. },
  1351. {
  1352. ProfileFRRetiredNearReturns,
  1353. TRUE,
  1354. 0x10000,
  1355. 0x10000,
  1356. 0x10000,
  1357. 0x10,
  1358. EVENT_MASK(0xc8) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1359. L"FRRetiredNearReturns"
  1360. },
  1361. {
  1362. ProfileFRRetiredNearReturnsMispredicted,
  1363. TRUE,
  1364. 0x10000,
  1365. 0x10000,
  1366. 0x10000,
  1367. 0x10,
  1368. EVENT_MASK(0xc9) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1369. L"FRRetiredNearReturnsMispredicted"
  1370. },
  1371. {
  1372. ProfileFRRetiredTakenBranchesMispredictedByAddressMiscompare,
  1373. TRUE,
  1374. 0x10000,
  1375. 0x10000,
  1376. 0x10000,
  1377. 0x10,
  1378. EVENT_MASK(0xca) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1379. L"FRRetiredTakenBranchesMispredictedByAddressMiscompare"
  1380. },
  1381. {
  1382. ProfileFRRetiredFPUInstructions,
  1383. NOT_SUPPORTED_IN_K8_REVA,
  1384. 0x10000,
  1385. 0x10000,
  1386. 0x10000,
  1387. 0x10,
  1388. EVENT_MASK(0xcb) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  1389. L"FRRetiredFPUInstructions"
  1390. },
  1391. {
  1392. ProfileFRRetiredFPUInstructionsx87,
  1393. NOT_SUPPORTED_IN_K8_REVA,
  1394. 0x10000,
  1395. 0x10000,
  1396. 0x10000,
  1397. 0x10,
  1398. EVENT_MASK(0xcb) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1399. L"FRRetiredFPUInstructionsx87"
  1400. },
  1401. {
  1402. ProfileFRRetiredFPUInstructionsMMXAnd3DNow,
  1403. NOT_SUPPORTED_IN_K8_REVA,
  1404. 0x10000,
  1405. 0x10000,
  1406. 0x10000,
  1407. 0x10,
  1408. EVENT_MASK(0xcb) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1409. L"FRRetiredFPUInstructionsMMXAnd3DNow"
  1410. },
  1411. {
  1412. ProfileFRRetiredFPUInstructionsPackedSSEAndSSE2,
  1413. NOT_SUPPORTED_IN_K8_REVA,
  1414. 0x10000,
  1415. 0x10000,
  1416. 0x10000,
  1417. 0x10,
  1418. EVENT_MASK(0xcb) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1419. L"FRRetiredFPUInstructionsPackedSSEAndSSE2"
  1420. },
  1421. {
  1422. ProfileFRRetiredFPUInstructionsScalarSSEAndSSE2,
  1423. NOT_SUPPORTED_IN_K8_REVA,
  1424. 0x10000,
  1425. 0x10000,
  1426. 0x10000,
  1427. 0x10,
  1428. EVENT_MASK(0xcb) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  1429. L"FRRetiredFPUInstructionsScalarSSEAndSSE2"
  1430. },
  1431. {
  1432. ProfileFRRetiredFastpathDoubleOpInstructions,
  1433. NOT_SUPPORTED_IN_K8_REVA,
  1434. 0x10000,
  1435. 0x10000,
  1436. 0x10000,
  1437. 0x10,
  1438. EVENT_MASK(0xcc) | UNIT_MASK(0x07) | DEFAULT_METHOD,
  1439. L"FRRetiredFastpathDoubleOpInstructions"
  1440. },
  1441. {
  1442. ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition0,
  1443. NOT_SUPPORTED_IN_K8_REVA,
  1444. 0x10000,
  1445. 0x10000,
  1446. 0x10000,
  1447. 0x10,
  1448. EVENT_MASK(0xcc) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1449. L"FRRetiredFastpathDoubleOpInstructionsLowOpInPosition0"
  1450. },
  1451. {
  1452. ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition1,
  1453. NOT_SUPPORTED_IN_K8_REVA,
  1454. 0x10000,
  1455. 0x10000,
  1456. 0x10000,
  1457. 0x10,
  1458. EVENT_MASK(0xcc) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1459. L"FRRetiredFastpathDoubleOpInstructionsLowOpInPosition1"
  1460. },
  1461. {
  1462. ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition2,
  1463. NOT_SUPPORTED_IN_K8_REVA,
  1464. 0x10000,
  1465. 0x10000,
  1466. 0x10000,
  1467. 0x10,
  1468. EVENT_MASK(0xcc) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1469. L"FRRetiredFastpathDoubleOpInstructionsLowOpInPosition2"
  1470. },
  1471. {
  1472. ProfileFRInterruptsMaskedCycles,
  1473. TRUE,
  1474. 0x10000,
  1475. 0x10000,
  1476. 0x10000,
  1477. 0x10,
  1478. EVENT_MASK(0xcd) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1479. L"FRInterruptsMaskedCycles"
  1480. },
  1481. {
  1482. ProfileFRInterruptsMaskedWhilePendingCycles,
  1483. TRUE,
  1484. 0x10000,
  1485. 0x10000,
  1486. 0x10000,
  1487. 0x10,
  1488. EVENT_MASK(0xce) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1489. L"FRInterruptsMaskedWhilePendingCycles"
  1490. },
  1491. {
  1492. ProfileFRTakenHardwareInterrupts,
  1493. TRUE,
  1494. 0x10000,
  1495. 0x10000,
  1496. 0x10000,
  1497. 0x10,
  1498. EVENT_MASK(0xcf) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1499. L"FRTakenHardwareInterrupts"
  1500. },
  1501. {
  1502. ProfileFRNothingToDispatch,
  1503. TRUE,
  1504. 0x10000,
  1505. 0x10000,
  1506. 0x10000,
  1507. 0x10,
  1508. EVENT_MASK(0xd0) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1509. L"FRNothingToDispatch"
  1510. },
  1511. {
  1512. ProfileFRDispatchStalls,
  1513. TRUE,
  1514. 0x10000,
  1515. 0x10000,
  1516. 0x10000,
  1517. 0x10,
  1518. EVENT_MASK(0xd1) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1519. L"FRDispatchStalls"
  1520. },
  1521. {
  1522. ProfileFRDispatchStallsFromBranchAbortToRetire,
  1523. TRUE,
  1524. 0x10000,
  1525. 0x10000,
  1526. 0x10000,
  1527. 0x10,
  1528. EVENT_MASK(0xd2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1529. L"FRDispatchStallsFromBranchAbortToRetire"
  1530. },
  1531. {
  1532. ProfileFRDispatchStallsForSerialization,
  1533. TRUE,
  1534. 0x10000,
  1535. 0x10000,
  1536. 0x10000,
  1537. 0x10,
  1538. EVENT_MASK(0xd3) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1539. L"FRDispatchStallsForSerialization"
  1540. },
  1541. {
  1542. ProfileFRDispatchStallsForSegmentLoad,
  1543. TRUE,
  1544. 0x10000,
  1545. 0x10000,
  1546. 0x10000,
  1547. 0x10,
  1548. EVENT_MASK(0xd4) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1549. L"FRDispatchStallsForSegmentLoad"
  1550. },
  1551. {
  1552. ProfileFRDispatchStallsWhenReorderBufferFull,
  1553. TRUE,
  1554. 0x10000,
  1555. 0x10000,
  1556. 0x10000,
  1557. 0x10,
  1558. EVENT_MASK(0xd5) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1559. L"FRDispatchStallsWhenReorderBufferFull"
  1560. },
  1561. {
  1562. ProfileFRDispatchStallsWhenReservationStationsFull,
  1563. TRUE,
  1564. 0x10000,
  1565. 0x10000,
  1566. 0x10000,
  1567. 0x10,
  1568. EVENT_MASK(0xd6) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1569. L"FRDispatchStallsWhenReservationStationsFull"
  1570. },
  1571. {
  1572. ProfileFRDispatchStallsWhenFPUFull,
  1573. TRUE,
  1574. 0x10000,
  1575. 0x10000,
  1576. 0x10000,
  1577. 0x10,
  1578. EVENT_MASK(0xd7) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1579. L"FRDispatchStallsWhenFPUFull"
  1580. },
  1581. {
  1582. ProfileFRDispatchStallsWhenLSFull,
  1583. TRUE,
  1584. 0x10000,
  1585. 0x10000,
  1586. 0x10000,
  1587. 0x10,
  1588. EVENT_MASK(0xd8) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1589. L"FRDispatchStallsWhenLSFull"
  1590. },
  1591. {
  1592. ProfileFRDispatchStallsWhenWaitingForAllQuiet,
  1593. TRUE,
  1594. 0x10000,
  1595. 0x10000,
  1596. 0x10000,
  1597. 0x10,
  1598. EVENT_MASK(0xd9) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1599. L"FRDispatchStallsWhenWaitingForAllQuiet"
  1600. },
  1601. {
  1602. ProfileFRDispatchStallsWhenFarControlOrResyncBranchPending,
  1603. TRUE,
  1604. 0x10000,
  1605. 0x10000,
  1606. 0x10000,
  1607. 0x10,
  1608. EVENT_MASK(0xda) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1609. L"FRDispatchStallsWhenFarControlOrResyncBranchPending"
  1610. },
  1611. {
  1612. ProfileFRFPUExceptions,
  1613. NOT_SUPPORTED_IN_K8_REVA,
  1614. 0x10000,
  1615. 0x10000,
  1616. 0x10000,
  1617. 0x10,
  1618. EVENT_MASK(0xdb) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  1619. L"FRFPUExceptions"
  1620. },
  1621. {
  1622. ProfileFRFPUExceptionsx87ReclassMicroFaults,
  1623. NOT_SUPPORTED_IN_K8_REVA,
  1624. 0x10000,
  1625. 0x10000,
  1626. 0x10000,
  1627. 0x10,
  1628. EVENT_MASK(0xdb) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1629. L"FRFPUExceptionsx87ReclassMicroFaults"
  1630. },
  1631. {
  1632. ProfileFRFPUExceptionsSSERetypeMicroFaults,
  1633. NOT_SUPPORTED_IN_K8_REVA,
  1634. 0x10000,
  1635. 0x10000,
  1636. 0x10000,
  1637. 0x10,
  1638. EVENT_MASK(0xdb) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1639. L"FRFPUExceptionsSSERetypeMicroFaults"
  1640. },
  1641. {
  1642. ProfileFRFPUExceptionsSSEReclassMicroFaults,
  1643. NOT_SUPPORTED_IN_K8_REVA,
  1644. 0x10000,
  1645. 0x10000,
  1646. 0x10000,
  1647. 0x10,
  1648. EVENT_MASK(0xdb) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1649. L"FRFPUExceptionsSSEReclassMicroFaults"
  1650. },
  1651. {
  1652. ProfileFRFPUExceptionsSSEAndx87MicroTraps,
  1653. NOT_SUPPORTED_IN_K8_REVA,
  1654. 0x10000,
  1655. 0x10000,
  1656. 0x10000,
  1657. 0x10,
  1658. EVENT_MASK(0xdb) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  1659. L"FRFPUExceptionsSSEAndx87MicroTraps"
  1660. },
  1661. {
  1662. ProfileFRNumberOfBreakPointsForDR0,
  1663. TRUE,
  1664. 0x10000,
  1665. 0x10000,
  1666. 0x10000,
  1667. 0x10,
  1668. EVENT_MASK(0xdc) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1669. L"FRNumberOfBreakPointsForDR0"
  1670. },
  1671. {
  1672. ProfileFRNumberOfBreakPointsForDR1,
  1673. TRUE,
  1674. 0x10000,
  1675. 0x10000,
  1676. 0x10000,
  1677. 0x10,
  1678. EVENT_MASK(0xdd) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1679. L"FRNumberOfBreakPointsForDR1"
  1680. },
  1681. {
  1682. ProfileFRNumberOfBreakPointsForDR2,
  1683. TRUE,
  1684. 0x10000,
  1685. 0x10000,
  1686. 0x10000,
  1687. 0x10,
  1688. EVENT_MASK(0xde) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1689. L"FRNumberOfBreakPointsForDR2"
  1690. },
  1691. {
  1692. ProfileFRNumberOfBreakPointsForDR3,
  1693. TRUE,
  1694. 0x10000,
  1695. 0x10000,
  1696. 0x10000,
  1697. 0x10,
  1698. EVENT_MASK(0xdf) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1699. L"FRNumberOfBreakPointsForDR3"
  1700. },
  1701. {
  1702. ProfileNBMemoryControllerPageAccessEvent,
  1703. TRUE,
  1704. 0x10000,
  1705. 0x10000,
  1706. 0x10000,
  1707. 0x10,
  1708. EVENT_MASK(0xe0) | UNIT_MASK(0x07) | DEFAULT_METHOD,
  1709. L"NBMemoryControllerPageAccessEvent"
  1710. },
  1711. {
  1712. ProfileNBMemoryControllerPageAccessEventPageHit,
  1713. TRUE,
  1714. 0x10000,
  1715. 0x10000,
  1716. 0x10000,
  1717. 0x10,
  1718. EVENT_MASK(0xe0) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1719. L"NBMemoryControllerPageAccessEventPageHit"
  1720. },
  1721. {
  1722. ProfileNBMemoryControllerPageAccessEventPageMiss,
  1723. TRUE,
  1724. 0x10000,
  1725. 0x10000,
  1726. 0x10000,
  1727. 0x10,
  1728. EVENT_MASK(0xe0) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1729. L"NBMemoryControllerPageAccessEventPageMiss"
  1730. },
  1731. {
  1732. ProfileNBMemoryControllerPageAccessEventPageConflict,
  1733. TRUE,
  1734. 0x10000,
  1735. 0x10000,
  1736. 0x10000,
  1737. 0x10,
  1738. EVENT_MASK(0xe0) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1739. L"NBMemoryControllerPageAccessEventPageConflict"
  1740. },
  1741. {
  1742. ProfileNBMemoryControllerPageTableOverflow,
  1743. TRUE,
  1744. 0x10000,
  1745. 0x10000,
  1746. 0x10000,
  1747. 0x10,
  1748. EVENT_MASK(0xe1) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1749. L"NBMemoryControllerPageTableOverflow"
  1750. },
  1751. {
  1752. ProfileNBMemoryControllerDRAMCommandSlotsMissed,
  1753. TRUE,
  1754. 0x10000,
  1755. 0x10000,
  1756. 0x10000,
  1757. 0x10,
  1758. EVENT_MASK(0xe2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
  1759. L"NBMemoryControllerDRAMCommandSlotsMissed"
  1760. },
  1761. {
  1762. ProfileNBMemoryControllerTurnAround,
  1763. TRUE,
  1764. 0x10000,
  1765. 0x10000,
  1766. 0x10000,
  1767. 0x10,
  1768. EVENT_MASK(0xe3) | UNIT_MASK(0x07) | DEFAULT_METHOD,
  1769. L"NBMemoryControllerTurnAround"
  1770. },
  1771. {
  1772. ProfileNBMemoryControllerTurnAroundDIMM,
  1773. TRUE,
  1774. 0x10000,
  1775. 0x10000,
  1776. 0x10000,
  1777. 0x10,
  1778. EVENT_MASK(0xe3) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1779. L"NBMemoryControllerTurnAroundDIMM"
  1780. },
  1781. {
  1782. ProfileNBMemoryControllerTurnAroundReadToWrite,
  1783. TRUE,
  1784. 0x10000,
  1785. 0x10000,
  1786. 0x10000,
  1787. 0x10,
  1788. EVENT_MASK(0xe3) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1789. L"NBMemoryControllerTurnAroundReadToWrite"
  1790. },
  1791. {
  1792. ProfileNBMemoryControllerTurnAroundWriteToRead,
  1793. TRUE,
  1794. 0x10000,
  1795. 0x10000,
  1796. 0x10000,
  1797. 0x10,
  1798. EVENT_MASK(0xe3) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1799. L"NBMemoryControllerTurnAroundWriteToRead"
  1800. },
  1801. {
  1802. ProfileNBMemoryControllerBypassCounter,
  1803. TRUE,
  1804. 0x10000,
  1805. 0x10000,
  1806. 0x10000,
  1807. 0x10,
  1808. EVENT_MASK(0xe4) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  1809. L"NBMemoryControllerBypassCounter"
  1810. },
  1811. {
  1812. ProfileNBMemoryControllerBypassCounterHighPriority,
  1813. TRUE,
  1814. 0x10000,
  1815. 0x10000,
  1816. 0x10000,
  1817. 0x10,
  1818. EVENT_MASK(0xe4) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1819. L"NBMemoryControllerBypassCounterHighPriority"
  1820. },
  1821. {
  1822. ProfileNBMemoryControllerBypassCounterLowPriority,
  1823. TRUE,
  1824. 0x10000,
  1825. 0x10000,
  1826. 0x10000,
  1827. 0x10,
  1828. EVENT_MASK(0xe4) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1829. L"NBMemoryControllerBypassCounterLowPriority"
  1830. },
  1831. {
  1832. ProfileNBMemoryControllerBypassCounterDRAMControllerInterface,
  1833. TRUE,
  1834. 0x10000,
  1835. 0x10000,
  1836. 0x10000,
  1837. 0x10,
  1838. EVENT_MASK(0xe4) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1839. L"NBMemoryControllerBypassCounterDRAMControllerInterface"
  1840. },
  1841. {
  1842. ProfileNBMemoryControllerBypassCounterDRAMControllerQueue,
  1843. TRUE,
  1844. 0x10000,
  1845. 0x10000,
  1846. 0x10000,
  1847. 0x10,
  1848. EVENT_MASK(0xe4) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  1849. L"NBMemoryControllerBypassCounterDRAMControllerQueue"
  1850. },
  1851. {
  1852. ProfileNBSizedCommands,
  1853. TRUE,
  1854. 0x10000,
  1855. 0x10000,
  1856. 0x10000,
  1857. 0x10,
  1858. EVENT_MASK(0xeb) | UNIT_MASK(0x7f) | DEFAULT_METHOD,
  1859. L"NBSizedCommands"
  1860. },
  1861. {
  1862. ProfileNBSizedCommandsNonPostWrSzByte,
  1863. TRUE,
  1864. 0x10000,
  1865. 0x10000,
  1866. 0x10000,
  1867. 0x10,
  1868. EVENT_MASK(0xeb) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1869. L"NBSizedCommandsNonPostWrSzByte"
  1870. },
  1871. {
  1872. ProfileNBSizedCommandsNonPostWrSzDword,
  1873. TRUE,
  1874. 0x10000,
  1875. 0x10000,
  1876. 0x10000,
  1877. 0x10,
  1878. EVENT_MASK(0xeb) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1879. L"NBSizedCommandsNonPostWrSzDword"
  1880. },
  1881. {
  1882. ProfileNBSizedCommandsWrSzByte,
  1883. TRUE,
  1884. 0x10000,
  1885. 0x10000,
  1886. 0x10000,
  1887. 0x10,
  1888. EVENT_MASK(0xeb) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1889. L"NBSizedCommandsWrSzByte"
  1890. },
  1891. {
  1892. ProfileNBSizedCommandsWrSzDword,
  1893. TRUE,
  1894. 0x10000,
  1895. 0x10000,
  1896. 0x10000,
  1897. 0x10,
  1898. EVENT_MASK(0xeb) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  1899. L"NBSizedCommandsWrSzDword"
  1900. },
  1901. {
  1902. ProfileNBSizedCommandsRdSzByte,
  1903. TRUE,
  1904. 0x10000,
  1905. 0x10000,
  1906. 0x10000,
  1907. 0x10,
  1908. EVENT_MASK(0xeb) | UNIT_MASK(0x10) | DEFAULT_METHOD,
  1909. L"NBSizedCommandsRdSzByte"
  1910. },
  1911. {
  1912. ProfileNBSizedCommandsRdSzDword,
  1913. TRUE,
  1914. 0x10000,
  1915. 0x10000,
  1916. 0x10000,
  1917. 0x10,
  1918. EVENT_MASK(0xeb) | UNIT_MASK(0x20) | DEFAULT_METHOD,
  1919. L"NBSizedCommandsRdSzDword"
  1920. },
  1921. {
  1922. ProfileNBSizedCommandsRdModWr,
  1923. TRUE,
  1924. 0x10000,
  1925. 0x10000,
  1926. 0x10000,
  1927. 0x10,
  1928. EVENT_MASK(0xeb) | UNIT_MASK(0x40) | DEFAULT_METHOD,
  1929. L"NBSizedCommandsRdModWr"
  1930. },
  1931. {
  1932. ProfileNBProbeResult,
  1933. TRUE,
  1934. 0x10000,
  1935. 0x10000,
  1936. 0x10000,
  1937. 0x10,
  1938. EVENT_MASK(0xec) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  1939. L"NBProbeResult"
  1940. },
  1941. {
  1942. ProfileNBProbeResultMiss,
  1943. TRUE,
  1944. 0x10000,
  1945. 0x10000,
  1946. 0x10000,
  1947. 0x10,
  1948. EVENT_MASK(0xec) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1949. L"NBProbeResultMiss"
  1950. },
  1951. {
  1952. ProfileNBProbeResultHit,
  1953. TRUE,
  1954. 0x10000,
  1955. 0x10000,
  1956. 0x10000,
  1957. 0x10,
  1958. EVENT_MASK(0xec) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  1959. L"NBProbeResultHit"
  1960. },
  1961. {
  1962. ProfileNBProbeResultHitDirtyWithoutMemoryCancel,
  1963. TRUE,
  1964. 0x10000,
  1965. 0x10000,
  1966. 0x10000,
  1967. 0x10,
  1968. EVENT_MASK(0xec) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  1969. L"NBProbeResultHitDirtyWithoutMemoryCancel"
  1970. },
  1971. {
  1972. ProfileNBProbeResultHitDirtyWithMemoryCancel,
  1973. TRUE,
  1974. 0x10000,
  1975. 0x10000,
  1976. 0x10000,
  1977. 0x10,
  1978. EVENT_MASK(0xec) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  1979. L"NBProbeResultHitDirtyWithMemoryCancel"
  1980. },
  1981. {
  1982. ProfileNBHyperTransportBus0Bandwidth,
  1983. TRUE,
  1984. 0x10000,
  1985. 0x10000,
  1986. 0x10000,
  1987. 0x10,
  1988. EVENT_MASK(0xf6) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  1989. L"NBHyperTransportBus0Bandwidth"
  1990. },
  1991. {
  1992. ProfileNBHyperTransportBus0BandwidthCommandSent,
  1993. TRUE,
  1994. 0x10000,
  1995. 0x10000,
  1996. 0x10000,
  1997. 0x10,
  1998. EVENT_MASK(0xf6) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  1999. L"NBHyperTransportBus0BandwidthCommandSent"
  2000. },
  2001. {
  2002. ProfileNBHyperTransportBus0BandwidthDataSent,
  2003. TRUE,
  2004. 0x10000,
  2005. 0x10000,
  2006. 0x10000,
  2007. 0x10,
  2008. EVENT_MASK(0xf6) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  2009. L"NBHyperTransportBus0BandwidthDataSent"
  2010. },
  2011. {
  2012. ProfileNBHyperTransportBus0BandwidthBufferReleaseSent,
  2013. TRUE,
  2014. 0x10000,
  2015. 0x10000,
  2016. 0x10000,
  2017. 0x10,
  2018. EVENT_MASK(0xf6) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  2019. L"NBHyperTransportBus0BandwidthBufferReleaseSent"
  2020. },
  2021. {
  2022. ProfileNBHyperTransportBus0BandwidthNopSent,
  2023. TRUE,
  2024. 0x10000,
  2025. 0x10000,
  2026. 0x10000,
  2027. 0x10,
  2028. EVENT_MASK(0xf6) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  2029. L"NBHyperTransportBus0BandwidthNopSent"
  2030. },
  2031. {
  2032. ProfileNBHyperTransportBus1Bandwidth,
  2033. TRUE,
  2034. 0x10000,
  2035. 0x10000,
  2036. 0x10000,
  2037. 0x10,
  2038. EVENT_MASK(0xf7) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  2039. L"NBHyperTransportBus1Bandwidth"
  2040. },
  2041. {
  2042. ProfileNBHyperTransportBus1BandwidthCommandSent,
  2043. TRUE,
  2044. 0x10000,
  2045. 0x10000,
  2046. 0x10000,
  2047. 0x10,
  2048. EVENT_MASK(0xf7) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  2049. L"NBHyperTransportBus1BandwidthCommandSent"
  2050. },
  2051. {
  2052. ProfileNBHyperTransportBus1BandwidthDataSent,
  2053. TRUE,
  2054. 0x10000,
  2055. 0x10000,
  2056. 0x10000,
  2057. 0x10,
  2058. EVENT_MASK(0xf7) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  2059. L"NBHyperTransportBus1BandwidthDataSent"
  2060. },
  2061. {
  2062. ProfileNBHyperTransportBus1BandwidthBufferReleaseSent,
  2063. TRUE,
  2064. 0x10000,
  2065. 0x10000,
  2066. 0x10000,
  2067. 0x10,
  2068. EVENT_MASK(0xf7) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  2069. L"NBHyperTransportBus1BandwidthBufferReleaseSent"
  2070. },
  2071. {
  2072. ProfileNBHyperTransportBus1BandwidthNopSent,
  2073. TRUE,
  2074. 0x10000,
  2075. 0x10000,
  2076. 0x10000,
  2077. 0x10,
  2078. EVENT_MASK(0xf7) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  2079. L"NBHyperTransportBus1BandwidthNopSent"
  2080. },
  2081. {
  2082. ProfileNBHyperTransportBus2Bandwidth,
  2083. TRUE,
  2084. 0x10000,
  2085. 0x10000,
  2086. 0x10000,
  2087. 0x10,
  2088. EVENT_MASK(0xf8) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
  2089. L"NBHyperTransportBus2Bandwidth"
  2090. },
  2091. {
  2092. ProfileNBHyperTransportBus2BandwidthCommandSent,
  2093. TRUE,
  2094. 0x10000,
  2095. 0x10000,
  2096. 0x10000,
  2097. 0x10,
  2098. EVENT_MASK(0xf8) | UNIT_MASK(0x01) | DEFAULT_METHOD,
  2099. L"NBHyperTransportBus2BandwidthCommandSent"
  2100. },
  2101. {
  2102. ProfileNBHyperTransportBus2BandwidthDataSent,
  2103. TRUE,
  2104. 0x10000,
  2105. 0x10000,
  2106. 0x10000,
  2107. 0x10,
  2108. EVENT_MASK(0xf8) | UNIT_MASK(0x02) | DEFAULT_METHOD,
  2109. L"NBHyperTransportBus2BandwidthDataSent"
  2110. },
  2111. {
  2112. ProfileNBHyperTransportBus2BandwidthBufferReleaseSent,
  2113. TRUE,
  2114. 0x10000,
  2115. 0x10000,
  2116. 0x10000,
  2117. 0x10,
  2118. EVENT_MASK(0xf8) | UNIT_MASK(0x04) | DEFAULT_METHOD,
  2119. L"NBHyperTransportBus2BandwidthBufferReleaseSent"
  2120. },
  2121. {
  2122. ProfileNBHyperTransportBus2BandwidthNopSent,
  2123. TRUE,
  2124. 0x10000,
  2125. 0x10000,
  2126. 0x10000,
  2127. 0x10,
  2128. EVENT_MASK(0xf8) | UNIT_MASK(0x08) | DEFAULT_METHOD,
  2129. L"NBHyperTransportBus2BandwidthNopSent"
  2130. }
  2131. };
  2132. #endif