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.
 
 
 
 
 
 

2158 lines
56 KiB

/*++
Copyright (c) 2002 Microsoft Corporation
Module Name:
amd64.h
Abstract:
This module contains function prototypes, declarations used by the
profiling functions for the Amd64 platform
Author:
Steve Deng (sdeng) 18-Jun-2002
Environment:
Kernel mode only.
--*/
#ifndef _AMD64_H_
#define _AMD64_H_
//
// Defines the attributes of counter registers
//
#define AMD64_NUMBER_COUNTERS 4 // number of performance counters
#define AMD64_COUNTER_RESOLUTION 48 // resolution of performance counters
//
// Define constants for bits in PerfEvtSel register
//
#define EVENT_MASK(i) (i)
#define UNIT_MASK(i) ((i) << 8)
#define PERF_EVT_SEL_USER_COUNT (1 << 16)
#define PERF_EVT_SEL_OS_COUNT (1 << 17)
#define PERF_EVT_SEL_EDGE_DETECT (1 << 18)
#define PERF_EVT_SEL_PIN_CONTROL (1 << 19)
#define PERF_EVT_SEL_INTERRUPT (1 << 20)
#define PERF_EVT_SEL_ENABLE (1 << 22)
#define PERF_EVT_SEL_INVERT (1 << 23)
#define PERF_EVT_SEL_COUNTER_MASK (0xf << 24)
#define DEFAULT_METHOD ( PERF_EVT_SEL_USER_COUNT | \
PERF_EVT_SEL_OS_COUNT & \
~PERF_EVT_SEL_EDGE_DETECT & \
~PERF_EVT_SEL_PIN_CONTROL & \
~PERF_EVT_SEL_INTERRUPT & \
~PERF_EVT_SEL_INVERT & \
~PERF_EVT_SEL_COUNTER_MASK )
//
// Some events are not supported in Rev A silicon but will be available in
// Rev B. We temporarily mark these events as not supported.
//
#define NOT_SUPPORTED_IN_K8_REVA FALSE
//
// The data in this structure describes the the hardware aspects of
// profile sources
//
typedef struct _AMD64_PROFILE_SOURCE_DESCRIPTOR {
KPROFILE_SOURCE ProfileSource; // Profile source
BOOLEAN Supported; // Is it supported
ULONGLONG Interval; // Current Interval
ULONGLONG DefInterval; // Default or Desired Interval
ULONGLONG MaxInterval; // Maximum Interval
ULONGLONG MinInterval; // Maximum Interval
ULONG PerfEvtSelDef; // Default value of PerfEvtSel register
PWSTR Description; // Mnemonic event name
} AMD64_PROFILE_SOURCE_DESCRIPTOR, *PAMD64_PROFILE_SOURCE_DESCRIPTOR;
#define AMD64_PROFILE_MINIMUM (ProfileMaximum + 1)
typedef enum _AMD64_PROFILE_LIST {
ProfileAmd64Minimum = AMD64_PROFILE_MINIMUM,
ProfileFPDispatchedFPUOps = AMD64_PROFILE_MINIMUM,
ProfileFPDispatchedFPUOpsAddExcludeJunk,
ProfileFPDispatchedFPUOpsMulExcludeJunk,
ProfileFPDispatchedFPUOpsStoreExcludeJunk,
ProfileFPDispatchedFPUOpsAddJunk,
ProfileFPDispatchedFPUOpsMulJunk,
ProfileFPDispatchedFPUOpsStoreJunk,
ProfileFPCyclesNoFPUOpsRetired,
ProfileFPDispathedFPUOpsWithFastFlag,
ProfileLSSegmentRegisterLoad,
ProfileLSSegmentRegisterLoadES,
ProfileLSSegmentRegisterLoadCS,
ProfileLSSegmentRegisterLoadSS,
ProfileLSSegmentRegisterLoadDS,
ProfileLSSegmentRegisterLoadFS,
ProfileLSSegmentRegisterLoadGS,
ProfileLSSegmentRegisterLoadHS,
ProfileLSResyncBySelfModifyingCode,
ProfileLSResyncBySnoop,
ProfileLSBuffer2Full,
ProfileLSLockedOperation,
ProfileLSLateCancelOperation,
ProfileLSRetiredCFLUSH,
ProfileLSRetiredCPUID,
ProfileDCAccess,
ProfileDCMiss,
ProfileDCRefillFromL2,
ProfileDCRefillFromL2Invalid,
ProfileDCRefillFromL2Shared,
ProfileDCRefillFromL2Exclusive,
ProfileDCRefillFromL2Owner,
ProfileDCRefillFromL2Modified,
ProfileDCRefillFromSystem,
ProfileDCRefillFromSystemInvalid,
ProfileDCRefillFromSystemShared,
ProfileDCRefillFromSystemExclusive,
ProfileDCRefillFromSystemOwner,
ProfileDCRefillFromSystemModified,
ProfileDCRefillCopyBack,
ProfileDCRefillCopyBackInvalid,
ProfileDCRefillCopyBackShared,
ProfileDCRefillCopyBackExclusive,
ProfileDCRefillCopyBackOwner,
ProfileDCRefillCopyBackModified,
ProfileDCL1DTLBMissL2DTLBHit,
ProfileDCL1DTLBMissL2DTLBMiss,
ProfileDCMisalignedDataReference,
ProfileDCLateCancelOfAnAccess,
ProfileDCEarlyCancelOfAnAccess,
ProfileDCOneBitECCError,
ProfileDCOneBitECCErrorScrubberError,
ProfileDCOneBitECCErrorPiggybackScrubberError,
ProfileDCDispatchedPrefetchInstructions,
ProfileDCDispatchedPrefetchInstructionsLoad,
ProfileDCDispatchedPrefetchInstructionsStore,
ProfileDCDispatchedPrefetchInstructionsNTA,
ProfileBUInternalL2Request,
ProfileBUInternalL2RequestICFill,
ProfileBUInternalL2RequestDCFill,
ProfileBUInternalL2RequestTLBReload,
ProfileBUInternalL2RequestTagSnoopRequest,
ProfileBUInternalL2RequestCancelledRequest,
ProfileBUFillRequestMissedInL2,
ProfileBUFillRequestMissedInL2ICFill,
ProfileBUFillRequestMissedInL2DCFill,
ProfileBUFillRequestMissedInL2TLBLoad,
ProfileBUFillIntoL2,
ProfileBUFillIntoL2DirtyL2Victim,
ProfileBUFillIntoL2VictimFromL1,
ProfileICFetch,
ProfileICMiss,
ProfileICRefillFromL2,
ProfileICRefillFromSystem,
ProfileICL1TLBMissL2TLBHit,
ProfileICL1TLBMissL2TLBMiss,
ProfileICResyncBySnoop,
ProfileICInstructionFetchStall,
ProfileICReturnStackHit,
ProfileICReturnStackOverflow,
ProfileFRRetiredx86Instructions,
ProfileFRRetireduops,
ProfileFRRetiredBranches,
ProfileFRRetiredBranchesMispredicted,
ProfileFRRetiredTakenBranches,
ProfileFRRetiredTakenBranchesMispredicted,
ProfileFRRetiredFarControlTransfers,
ProfileFRRetiredResyncsNonControlTransferBranches,
ProfileFRRetiredNearReturns,
ProfileFRRetiredNearReturnsMispredicted,
ProfileFRRetiredTakenBranchesMispredictedByAddressMiscompare,
ProfileFRRetiredFPUInstructions,
ProfileFRRetiredFPUInstructionsx87,
ProfileFRRetiredFPUInstructionsMMXAnd3DNow,
ProfileFRRetiredFPUInstructionsPackedSSEAndSSE2,
ProfileFRRetiredFPUInstructionsScalarSSEAndSSE2,
ProfileFRRetiredFastpathDoubleOpInstructions,
ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition0,
ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition1,
ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition2,
ProfileFRInterruptsMaskedCycles,
ProfileFRInterruptsMaskedWhilePendingCycles,
ProfileFRTakenHardwareInterrupts,
ProfileFRNothingToDispatch,
ProfileFRDispatchStalls,
ProfileFRDispatchStallsFromBranchAbortToRetire,
ProfileFRDispatchStallsForSerialization,
ProfileFRDispatchStallsForSegmentLoad,
ProfileFRDispatchStallsWhenReorderBufferFull,
ProfileFRDispatchStallsWhenReservationStationsFull,
ProfileFRDispatchStallsWhenFPUFull,
ProfileFRDispatchStallsWhenLSFull,
ProfileFRDispatchStallsWhenWaitingForAllQuiet,
ProfileFRDispatchStallsWhenFarControlOrResyncBranchPending,
ProfileFRFPUExceptions,
ProfileFRFPUExceptionsx87ReclassMicroFaults,
ProfileFRFPUExceptionsSSERetypeMicroFaults,
ProfileFRFPUExceptionsSSEReclassMicroFaults,
ProfileFRFPUExceptionsSSEAndx87MicroTraps,
ProfileFRNumberOfBreakPointsForDR0,
ProfileFRNumberOfBreakPointsForDR1,
ProfileFRNumberOfBreakPointsForDR2,
ProfileFRNumberOfBreakPointsForDR3,
ProfileNBMemoryControllerPageAccessEvent,
ProfileNBMemoryControllerPageAccessEventPageHit,
ProfileNBMemoryControllerPageAccessEventPageMiss,
ProfileNBMemoryControllerPageAccessEventPageConflict,
ProfileNBMemoryControllerPageTableOverflow,
ProfileNBMemoryControllerDRAMCommandSlotsMissed,
ProfileNBMemoryControllerTurnAround,
ProfileNBMemoryControllerTurnAroundDIMM,
ProfileNBMemoryControllerTurnAroundReadToWrite,
ProfileNBMemoryControllerTurnAroundWriteToRead,
ProfileNBMemoryControllerBypassCounter,
ProfileNBMemoryControllerBypassCounterHighPriority,
ProfileNBMemoryControllerBypassCounterLowPriority,
ProfileNBMemoryControllerBypassCounterDRAMControllerInterface,
ProfileNBMemoryControllerBypassCounterDRAMControllerQueue,
ProfileNBSizedCommands,
ProfileNBSizedCommandsNonPostWrSzByte,
ProfileNBSizedCommandsNonPostWrSzDword,
ProfileNBSizedCommandsWrSzByte,
ProfileNBSizedCommandsWrSzDword,
ProfileNBSizedCommandsRdSzByte,
ProfileNBSizedCommandsRdSzDword,
ProfileNBSizedCommandsRdModWr,
ProfileNBProbeResult,
ProfileNBProbeResultMiss,
ProfileNBProbeResultHit,
ProfileNBProbeResultHitDirtyWithoutMemoryCancel,
ProfileNBProbeResultHitDirtyWithMemoryCancel,
ProfileNBHyperTransportBus0Bandwidth,
ProfileNBHyperTransportBus0BandwidthCommandSent,
ProfileNBHyperTransportBus0BandwidthDataSent,
ProfileNBHyperTransportBus0BandwidthBufferReleaseSent,
ProfileNBHyperTransportBus0BandwidthNopSent,
ProfileNBHyperTransportBus1Bandwidth,
ProfileNBHyperTransportBus1BandwidthCommandSent,
ProfileNBHyperTransportBus1BandwidthDataSent,
ProfileNBHyperTransportBus1BandwidthBufferReleaseSent,
ProfileNBHyperTransportBus1BandwidthNopSent,
ProfileNBHyperTransportBus2Bandwidth,
ProfileNBHyperTransportBus2BandwidthCommandSent,
ProfileNBHyperTransportBus2BandwidthDataSent,
ProfileNBHyperTransportBus2BandwidthBufferReleaseSent,
ProfileNBHyperTransportBus2BandwidthNopSent,
ProfileAmd64Maximum
} AMD64_PROFILE_LIST;
AMD64_PROFILE_SOURCE_DESCRIPTOR
Amd64ProfileSourceDescriptorTable[ProfileAmd64Maximum -
ProfileAmd64Minimum +
ProfileMaximum] = {
{
ProfileTime,
TRUE,
TIME_UNITS_PER_SECOND,
TIME_UNITS_PER_SECOND,
TIME_UNITS_PER_SECOND,
1221,
0,
L"Timer"
},
{
ProfileAlignmentFixup,
FALSE,
0,
0,
0,
0,
0,
L"AlignmentFixup"
},
{
ProfileTotalIssues, // Same as ProfileFRRetiredx86Instructions
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc0) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"TotalIssues"
},
{
ProfilePipelineDry,
FALSE,
0,
0,
0,
0,
0,
L"PipelineDry"
},
{
ProfileLoadInstructions,
FALSE,
0,
0,
0,
0,
0,
L"LoadInstructions"
},
{
ProfilePipelineFrozen,
FALSE,
0,
0,
0,
0,
0,
L"PipelineFrozen"
},
{
ProfileBranchInstructions, // Same as ProfileFRRetiredBranches
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"BranchInstructions"
},
{
ProfileTotalNonissues,
FALSE,
0,
0,
0,
0,
0,
L"TotalNonissues"
},
{
ProfileDcacheMisses, // Same as ProfileDCMiss
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x41) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DcacheMisses"
},
{
ProfileIcacheMisses, // Same as ProfileICMiss
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x81) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"IcacheMisses"
},
{
ProfileCacheMisses,
FALSE,
0,
0,
0,
0,
0,
L"CacheMisses"
},
{
ProfileBranchMispredictions, // Same as ProfileFRRetiredBranchesMispredicted
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc3) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"BranchMispredictions"
},
{
ProfileStoreInstructions,
FALSE,
0,
0,
0,
0,
0,
L"StoreInstructions"
},
{
ProfileFpInstructions, // Same as ProfileFRRetiredFPUInstructions
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcb) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"FpInstructions"
},
{
ProfileIntegerInstructions,
FALSE,
0,
0,
0,
0,
0,
L"IntegerInstructions"
},
{
Profile2Issue,
FALSE,
0,
0,
0,
0,
0,
L"2Issue"
},
{
Profile3Issue,
FALSE,
0,
0,
0,
0,
0,
L"3Issue"
},
{
Profile4Issue,
FALSE,
0,
0,
0,
0,
0,
L"4Issue"
},
{
ProfileSpecialInstructions,
FALSE,
0,
0,
0,
0,
0,
L"SpecialInstructions"
},
{
ProfileTotalCycles,
FALSE,
0,
0,
0,
0,
0,
L"TotalCycles"
},
{
ProfileIcacheIssues, // Same as ProfileICFetch
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x80) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"IcacheIssues"
},
{
ProfileDcacheAccesses, // Same as ProfileDCAccess
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x40) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DcacheAccesses"
},
{
ProfileMemoryBarrierCycles,
FALSE,
0,
0,
0,
0,
0,
L"MemoryBarrierCycles"
},
{
ProfileLoadLinkedIssues,
FALSE,
0,
0,
0,
0,
0,
L"LoadLinkedIssues"
},
//
// End of generic profile sources. Everything below is Amd64 specific.
//
// IMPORTANT NOTE: The order of the structures below should be
// exactly the same as the order of the the profile sources defined
// in _AMD64_PROFILE_LIST. The code in HalpGetProfileDescriptor
// relies on this assumption.
//
{
ProfileFPDispatchedFPUOps,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x3f) | DEFAULT_METHOD,
L"FPDispatchedFPUOps"
},
{
ProfileFPDispatchedFPUOpsAddExcludeJunk,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"FPDispatchedFPUOpsAddExcludeJunk"
},
{
ProfileFPDispatchedFPUOpsMulExcludeJunk,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"FPDispatchedFPUOpsMulExcludeJunk"
},
{
ProfileFPDispatchedFPUOpsStoreExcludeJunk,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"FPDispatchedFPUOpsStoreExcludeJunk"
},
{
ProfileFPDispatchedFPUOpsAddJunk,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"FPDispatchedFPUOpsAddJunk"
},
{
ProfileFPDispatchedFPUOpsMulJunk,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"FPDispatchedFPUOpsMulJunk"
},
{
ProfileFPDispatchedFPUOpsStoreJunk,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x00) | UNIT_MASK(0x20) | DEFAULT_METHOD,
L"FPDispatchedFPUOpsStoreJunk"
},
{
ProfileFPCyclesNoFPUOpsRetired,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x01) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FPCyclesNoFPUOpsRetired"
},
{
ProfileFPDispathedFPUOpsWithFastFlag,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x02) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FPDispathedFPUOpsWithFastFlag"
},
{
ProfileLSSegmentRegisterLoad,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x7f) | DEFAULT_METHOD,
L"LSSegmentRegisterLoad"
},
{
ProfileLSSegmentRegisterLoadES,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadES"
},
{
ProfileLSSegmentRegisterLoadCS,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadCS"
},
{
ProfileLSSegmentRegisterLoadSS,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadSS"
},
{
ProfileLSSegmentRegisterLoadDS,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadDS"
},
{
ProfileLSSegmentRegisterLoadFS,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadFS"
},
{
ProfileLSSegmentRegisterLoadGS,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x20) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadGS"
},
{
ProfileLSSegmentRegisterLoadHS,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x20) | UNIT_MASK(0x40) | DEFAULT_METHOD,
L"LSSegmentRegisterLoadHS"
},
{
ProfileLSResyncBySelfModifyingCode,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x21) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSResyncBySelfModifyingCode"
},
{
ProfileLSResyncBySnoop,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x22) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSResyncBySnoop"
},
{
ProfileLSBuffer2Full,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x23) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSBuffer2Full"
},
{
ProfileLSLockedOperation,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x24) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSLockedOperation"
},
{
ProfileLSLateCancelOperation,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x25) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSLateCancelOperation"
},
{
ProfileLSRetiredCFLUSH,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x26) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSRetiredCFLUSH"
},
{
ProfileLSRetiredCPUID,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x27) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"LSRetiredCPUID"
},
{
ProfileDCAccess,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x40) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCAccess"
},
{
ProfileDCMiss,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x41) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCMiss"
},
{
ProfileDCRefillFromL2,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x42) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
L"DCRefillFromL2"
},
{
ProfileDCRefillFromL2Invalid,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x42) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"DCRefillFromL2Invalid"
},
{
ProfileDCRefillFromL2Shared,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x42) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"DCRefillFromL2Shared"
},
{
ProfileDCRefillFromL2Exclusive,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x42) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"DCRefillFromL2Exclusive"
},
{
ProfileDCRefillFromL2Owner,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x42) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"DCRefillFromL2Owner"
},
{
ProfileDCRefillFromL2Modified,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x42) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"DCRefillFromL2Modified"
},
{
ProfileDCRefillFromSystem,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x43) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
L"DCRefillFromSystem"
},
{
ProfileDCRefillFromSystemInvalid,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x43) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"DCRefillFromSystemInvalid"
},
{
ProfileDCRefillFromSystemShared,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x43) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"DCRefillFromSystemShared"
},
{
ProfileDCRefillFromSystemExclusive,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x43) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"DCRefillFromSystemExclusive"
},
{
ProfileDCRefillFromSystemOwner,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x43) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"DCRefillFromSystemOwner"
},
{
ProfileDCRefillFromSystemModified,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x43) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"DCRefillFromSystemModified"
},
{
ProfileDCRefillCopyBack,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x44) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
L"DCRefillCopyBack"
},
{
ProfileDCRefillCopyBackInvalid,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x44) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"DCRefillCopyBackInvalid"
},
{
ProfileDCRefillCopyBackShared,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x44) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"DCRefillCopyBackShared"
},
{
ProfileDCRefillCopyBackExclusive,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x44) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"DCRefillCopyBackExclusive"
},
{
ProfileDCRefillCopyBackOwner,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x44) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"DCRefillCopyBackOwner"
},
{
ProfileDCRefillCopyBackModified,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x44) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"DCRefillCopyBackModified"
},
{
ProfileDCL1DTLBMissL2DTLBHit,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x45) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCL1DTLBMissL2DTLBHit"
},
{
ProfileDCL1DTLBMissL2DTLBMiss,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x46) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCL1DTLBMissL2DTLBMiss"
},
{
ProfileDCMisalignedDataReference,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x47) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCMisalignedDataReference"
},
{
ProfileDCLateCancelOfAnAccess,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x48) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCLateCancelOfAnAccess"
},
{
ProfileDCEarlyCancelOfAnAccess,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x49) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"DCEarlyCancelOfAnAccess"
},
{
ProfileDCOneBitECCError,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4a) | UNIT_MASK(0x03) | DEFAULT_METHOD,
L"DCOneBitECCError"
},
{
ProfileDCOneBitECCErrorScrubberError,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4a) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"DCOneBitECCErrorScrubberError"
},
{
ProfileDCOneBitECCErrorPiggybackScrubberError,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4a) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"DCOneBitECCErrorPiggybackScrubberError"
},
{
ProfileDCDispatchedPrefetchInstructions,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4b) | UNIT_MASK(0x07) | DEFAULT_METHOD,
L"DCDispatchedPrefetchInstructions"
},
{
ProfileDCDispatchedPrefetchInstructionsLoad,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4b) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"DCDispatchedPrefetchInstructionsLoad"
},
{
ProfileDCDispatchedPrefetchInstructionsStore,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4b) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"DCDispatchedPrefetchInstructionsStore"
},
{
ProfileDCDispatchedPrefetchInstructionsNTA,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x4b) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"DCDispatchedPrefetchInstructionsNTA"
},
{
ProfileBUInternalL2Request,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7d) | UNIT_MASK(0x1f) | DEFAULT_METHOD,
L"BUInternalL2Request"
},
{
ProfileBUInternalL2RequestICFill,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7d) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"BUInternalL2RequestICFill"
},
{
ProfileBUInternalL2RequestDCFill,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7d) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"BUInternalL2RequestDCFill"
},
{
ProfileBUInternalL2RequestTLBReload,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7d) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"BUInternalL2RequestTLBReload"
},
{
ProfileBUInternalL2RequestTagSnoopRequest,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7d) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"BUInternalL2RequestTagSnoopRequest"
},
{
ProfileBUInternalL2RequestCancelledRequest,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7d) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"BUInternalL2RequestCancelledRequest"
},
{
ProfileBUFillRequestMissedInL2,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7e) | UNIT_MASK(0x07) | DEFAULT_METHOD,
L"BUFillRequestMissedInL2"
},
{
ProfileBUFillRequestMissedInL2ICFill,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7e) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"BUFillRequestMissedInL2ICFill"
},
{
ProfileBUFillRequestMissedInL2DCFill,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7e) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"BUFillRequestMissedInL2DCFill"
},
{
ProfileBUFillRequestMissedInL2TLBLoad,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7e) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"BUFillRequestMissedInL2TLBLoad"
},
{
ProfileBUFillIntoL2,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7f) | UNIT_MASK(0x03) | DEFAULT_METHOD,
L"BUFillIntoL2"
},
{
ProfileBUFillIntoL2DirtyL2Victim,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7f) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"BUFillIntoL2DirtyL2Victim"
},
{
ProfileBUFillIntoL2VictimFromL1,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x7f) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"BUFillIntoL2VictimFromL1"
},
{
ProfileICFetch,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x80) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICFetch"
},
{
ProfileICMiss,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x81) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICMiss"
},
{
ProfileICRefillFromL2,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x82) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICRefillFromL2"
},
{
ProfileICRefillFromSystem,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x83) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICRefillFromSystem"
},
{
ProfileICL1TLBMissL2TLBHit,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x84) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICL1TLBMissL2TLBHit"
},
{
ProfileICL1TLBMissL2TLBMiss,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x85) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICL1TLBMissL2TLBMiss"
},
{
ProfileICResyncBySnoop,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x86) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICResyncBySnoop"
},
{
ProfileICInstructionFetchStall,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x87) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICInstructionFetchStall"
},
{
ProfileICReturnStackHit,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x88) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICReturnStackHit"
},
{
ProfileICReturnStackOverflow,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0x89) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"ICReturnStackOverflow"
},
{
ProfileFRRetiredx86Instructions,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc0) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredx86Instructions"
},
{
ProfileFRRetireduops,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc1) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetireduops"
},
{
ProfileFRRetiredBranches,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredBranches"
},
{
ProfileFRRetiredBranchesMispredicted,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc3) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredBranchesMispredicted"
},
{
ProfileFRRetiredTakenBranches,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc4) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredTakenBranches"
},
{
ProfileFRRetiredTakenBranchesMispredicted,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc5) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredTakenBranchesMispredicted"
},
{
ProfileFRRetiredFarControlTransfers,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc6) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredFarControlTransfers"
},
{
ProfileFRRetiredResyncsNonControlTransferBranches,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc7) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredResyncsNonControlTransferBranches"
},
{
ProfileFRRetiredNearReturns,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc8) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredNearReturns"
},
{
ProfileFRRetiredNearReturnsMispredicted,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xc9) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredNearReturnsMispredicted"
},
{
ProfileFRRetiredTakenBranchesMispredictedByAddressMiscompare,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xca) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRRetiredTakenBranchesMispredictedByAddressMiscompare"
},
{
ProfileFRRetiredFPUInstructions,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcb) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"FRRetiredFPUInstructions"
},
{
ProfileFRRetiredFPUInstructionsx87,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcb) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"FRRetiredFPUInstructionsx87"
},
{
ProfileFRRetiredFPUInstructionsMMXAnd3DNow,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcb) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"FRRetiredFPUInstructionsMMXAnd3DNow"
},
{
ProfileFRRetiredFPUInstructionsPackedSSEAndSSE2,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcb) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"FRRetiredFPUInstructionsPackedSSEAndSSE2"
},
{
ProfileFRRetiredFPUInstructionsScalarSSEAndSSE2,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcb) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"FRRetiredFPUInstructionsScalarSSEAndSSE2"
},
{
ProfileFRRetiredFastpathDoubleOpInstructions,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcc) | UNIT_MASK(0x07) | DEFAULT_METHOD,
L"FRRetiredFastpathDoubleOpInstructions"
},
{
ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition0,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcc) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"FRRetiredFastpathDoubleOpInstructionsLowOpInPosition0"
},
{
ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition1,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcc) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"FRRetiredFastpathDoubleOpInstructionsLowOpInPosition1"
},
{
ProfileFRRetiredFastpathDoubleOpInstructionsLowOpInPosition2,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcc) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"FRRetiredFastpathDoubleOpInstructionsLowOpInPosition2"
},
{
ProfileFRInterruptsMaskedCycles,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcd) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRInterruptsMaskedCycles"
},
{
ProfileFRInterruptsMaskedWhilePendingCycles,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xce) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRInterruptsMaskedWhilePendingCycles"
},
{
ProfileFRTakenHardwareInterrupts,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xcf) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRTakenHardwareInterrupts"
},
{
ProfileFRNothingToDispatch,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd0) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRNothingToDispatch"
},
{
ProfileFRDispatchStalls,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd1) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStalls"
},
{
ProfileFRDispatchStallsFromBranchAbortToRetire,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsFromBranchAbortToRetire"
},
{
ProfileFRDispatchStallsForSerialization,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd3) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsForSerialization"
},
{
ProfileFRDispatchStallsForSegmentLoad,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd4) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsForSegmentLoad"
},
{
ProfileFRDispatchStallsWhenReorderBufferFull,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd5) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsWhenReorderBufferFull"
},
{
ProfileFRDispatchStallsWhenReservationStationsFull,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd6) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsWhenReservationStationsFull"
},
{
ProfileFRDispatchStallsWhenFPUFull,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd7) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsWhenFPUFull"
},
{
ProfileFRDispatchStallsWhenLSFull,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd8) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsWhenLSFull"
},
{
ProfileFRDispatchStallsWhenWaitingForAllQuiet,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xd9) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsWhenWaitingForAllQuiet"
},
{
ProfileFRDispatchStallsWhenFarControlOrResyncBranchPending,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xda) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRDispatchStallsWhenFarControlOrResyncBranchPending"
},
{
ProfileFRFPUExceptions,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdb) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"FRFPUExceptions"
},
{
ProfileFRFPUExceptionsx87ReclassMicroFaults,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdb) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"FRFPUExceptionsx87ReclassMicroFaults"
},
{
ProfileFRFPUExceptionsSSERetypeMicroFaults,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdb) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"FRFPUExceptionsSSERetypeMicroFaults"
},
{
ProfileFRFPUExceptionsSSEReclassMicroFaults,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdb) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"FRFPUExceptionsSSEReclassMicroFaults"
},
{
ProfileFRFPUExceptionsSSEAndx87MicroTraps,
NOT_SUPPORTED_IN_K8_REVA,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdb) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"FRFPUExceptionsSSEAndx87MicroTraps"
},
{
ProfileFRNumberOfBreakPointsForDR0,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdc) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRNumberOfBreakPointsForDR0"
},
{
ProfileFRNumberOfBreakPointsForDR1,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdd) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRNumberOfBreakPointsForDR1"
},
{
ProfileFRNumberOfBreakPointsForDR2,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xde) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRNumberOfBreakPointsForDR2"
},
{
ProfileFRNumberOfBreakPointsForDR3,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xdf) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"FRNumberOfBreakPointsForDR3"
},
{
ProfileNBMemoryControllerPageAccessEvent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe0) | UNIT_MASK(0x07) | DEFAULT_METHOD,
L"NBMemoryControllerPageAccessEvent"
},
{
ProfileNBMemoryControllerPageAccessEventPageHit,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe0) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBMemoryControllerPageAccessEventPageHit"
},
{
ProfileNBMemoryControllerPageAccessEventPageMiss,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe0) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBMemoryControllerPageAccessEventPageMiss"
},
{
ProfileNBMemoryControllerPageAccessEventPageConflict,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe0) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBMemoryControllerPageAccessEventPageConflict"
},
{
ProfileNBMemoryControllerPageTableOverflow,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe1) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"NBMemoryControllerPageTableOverflow"
},
{
ProfileNBMemoryControllerDRAMCommandSlotsMissed,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe2) | UNIT_MASK(0x00) | DEFAULT_METHOD,
L"NBMemoryControllerDRAMCommandSlotsMissed"
},
{
ProfileNBMemoryControllerTurnAround,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe3) | UNIT_MASK(0x07) | DEFAULT_METHOD,
L"NBMemoryControllerTurnAround"
},
{
ProfileNBMemoryControllerTurnAroundDIMM,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe3) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBMemoryControllerTurnAroundDIMM"
},
{
ProfileNBMemoryControllerTurnAroundReadToWrite,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe3) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBMemoryControllerTurnAroundReadToWrite"
},
{
ProfileNBMemoryControllerTurnAroundWriteToRead,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe3) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBMemoryControllerTurnAroundWriteToRead"
},
{
ProfileNBMemoryControllerBypassCounter,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe4) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"NBMemoryControllerBypassCounter"
},
{
ProfileNBMemoryControllerBypassCounterHighPriority,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe4) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBMemoryControllerBypassCounterHighPriority"
},
{
ProfileNBMemoryControllerBypassCounterLowPriority,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe4) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBMemoryControllerBypassCounterLowPriority"
},
{
ProfileNBMemoryControllerBypassCounterDRAMControllerInterface,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe4) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBMemoryControllerBypassCounterDRAMControllerInterface"
},
{
ProfileNBMemoryControllerBypassCounterDRAMControllerQueue,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xe4) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"NBMemoryControllerBypassCounterDRAMControllerQueue"
},
{
ProfileNBSizedCommands,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x7f) | DEFAULT_METHOD,
L"NBSizedCommands"
},
{
ProfileNBSizedCommandsNonPostWrSzByte,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBSizedCommandsNonPostWrSzByte"
},
{
ProfileNBSizedCommandsNonPostWrSzDword,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBSizedCommandsNonPostWrSzDword"
},
{
ProfileNBSizedCommandsWrSzByte,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBSizedCommandsWrSzByte"
},
{
ProfileNBSizedCommandsWrSzDword,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"NBSizedCommandsWrSzDword"
},
{
ProfileNBSizedCommandsRdSzByte,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x10) | DEFAULT_METHOD,
L"NBSizedCommandsRdSzByte"
},
{
ProfileNBSizedCommandsRdSzDword,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x20) | DEFAULT_METHOD,
L"NBSizedCommandsRdSzDword"
},
{
ProfileNBSizedCommandsRdModWr,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xeb) | UNIT_MASK(0x40) | DEFAULT_METHOD,
L"NBSizedCommandsRdModWr"
},
{
ProfileNBProbeResult,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xec) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"NBProbeResult"
},
{
ProfileNBProbeResultMiss,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xec) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBProbeResultMiss"
},
{
ProfileNBProbeResultHit,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xec) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBProbeResultHit"
},
{
ProfileNBProbeResultHitDirtyWithoutMemoryCancel,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xec) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBProbeResultHitDirtyWithoutMemoryCancel"
},
{
ProfileNBProbeResultHitDirtyWithMemoryCancel,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xec) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"NBProbeResultHitDirtyWithMemoryCancel"
},
{
ProfileNBHyperTransportBus0Bandwidth,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf6) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"NBHyperTransportBus0Bandwidth"
},
{
ProfileNBHyperTransportBus0BandwidthCommandSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf6) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBHyperTransportBus0BandwidthCommandSent"
},
{
ProfileNBHyperTransportBus0BandwidthDataSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf6) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBHyperTransportBus0BandwidthDataSent"
},
{
ProfileNBHyperTransportBus0BandwidthBufferReleaseSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf6) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBHyperTransportBus0BandwidthBufferReleaseSent"
},
{
ProfileNBHyperTransportBus0BandwidthNopSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf6) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"NBHyperTransportBus0BandwidthNopSent"
},
{
ProfileNBHyperTransportBus1Bandwidth,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf7) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"NBHyperTransportBus1Bandwidth"
},
{
ProfileNBHyperTransportBus1BandwidthCommandSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf7) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBHyperTransportBus1BandwidthCommandSent"
},
{
ProfileNBHyperTransportBus1BandwidthDataSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf7) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBHyperTransportBus1BandwidthDataSent"
},
{
ProfileNBHyperTransportBus1BandwidthBufferReleaseSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf7) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBHyperTransportBus1BandwidthBufferReleaseSent"
},
{
ProfileNBHyperTransportBus1BandwidthNopSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf7) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"NBHyperTransportBus1BandwidthNopSent"
},
{
ProfileNBHyperTransportBus2Bandwidth,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf8) | UNIT_MASK(0x0f) | DEFAULT_METHOD,
L"NBHyperTransportBus2Bandwidth"
},
{
ProfileNBHyperTransportBus2BandwidthCommandSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf8) | UNIT_MASK(0x01) | DEFAULT_METHOD,
L"NBHyperTransportBus2BandwidthCommandSent"
},
{
ProfileNBHyperTransportBus2BandwidthDataSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf8) | UNIT_MASK(0x02) | DEFAULT_METHOD,
L"NBHyperTransportBus2BandwidthDataSent"
},
{
ProfileNBHyperTransportBus2BandwidthBufferReleaseSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf8) | UNIT_MASK(0x04) | DEFAULT_METHOD,
L"NBHyperTransportBus2BandwidthBufferReleaseSent"
},
{
ProfileNBHyperTransportBus2BandwidthNopSent,
TRUE,
0x10000,
0x10000,
0x10000,
0x10,
EVENT_MASK(0xf8) | UNIT_MASK(0x08) | DEFAULT_METHOD,
L"NBHyperTransportBus2BandwidthNopSent"
}
};
#endif