1140 lines
33 KiB
C
1140 lines
33 KiB
C
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
p6data.c
|
|
|
|
Abstract:
|
|
|
|
a file containing the constant data structures used by the Performance
|
|
Monitor data for the P5 Extensible Objects.
|
|
|
|
This file contains a set of constant data structures which are
|
|
currently defined for the P5 Extensible Objects. This is an
|
|
example of how other such objects could be defined.
|
|
|
|
Created:
|
|
|
|
Russ Blake 24 Dec 93
|
|
|
|
Revision History:
|
|
|
|
None.
|
|
|
|
--*/
|
|
//
|
|
// Include Files
|
|
//
|
|
|
|
#include <windows.h>
|
|
#include <winperf.h>
|
|
#include <assert.h>
|
|
#include "p5ctrnam.h"
|
|
#include "pentdata.h"
|
|
|
|
//
|
|
// Constant structure initializations for the structure defined in p6data.h
|
|
//
|
|
P6_DATA_DEFINITION P6DataDefinition = {
|
|
{
|
|
sizeof(P6_DATA_DEFINITION) + sizeof(P6_COUNTER_DATA),
|
|
sizeof(P6_DATA_DEFINITION),
|
|
sizeof(PERF_OBJECT_TYPE),
|
|
PENTIUM,
|
|
0,
|
|
PENTIUM,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
(sizeof(P6_DATA_DEFINITION)-sizeof(PERF_OBJECT_TYPE))/
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
0,
|
|
0,
|
|
0
|
|
},
|
|
{ // 1
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_LD_BLOCKS,
|
|
0,
|
|
P6_LD_BLOCKS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llStoreBufferBlocks),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llStoreBufferBlocks
|
|
},
|
|
{ // 2
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_SB_DRAINS,
|
|
0,
|
|
P6_SB_DRAINS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llStoreBufferDrainCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llStoreBufferDrainCycles
|
|
},
|
|
{ // 3
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_MISALIGN_MEM_REF,
|
|
0,
|
|
P6_MISALIGN_MEM_REF,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llMisalignedDataRef),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llMisalignedDataRef
|
|
},
|
|
{ // 4
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_SEGMENT_REG_LOADS,
|
|
0,
|
|
P6_SEGMENT_REG_LOADS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llSegmentLoads),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llSegmentLoads
|
|
},
|
|
{ // 5
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_FP_COMP_OPS_EXE,
|
|
0,
|
|
P6_FP_COMP_OPS_EXE,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llFLOPSExecuted),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llFLOPSExecuted
|
|
},
|
|
{ // 6
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_FP_ASSIST,
|
|
0,
|
|
P6_FP_ASSIST,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llMicrocodeFPExceptions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llMicrocodeFPExceptions
|
|
},
|
|
{ // 7
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_MUL,
|
|
0,
|
|
P6_MUL,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llMultiplies),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llMultiplies
|
|
},
|
|
{ // 8
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_DIV,
|
|
0,
|
|
P6_DIV,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llDivides),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llDivides
|
|
},
|
|
{ // 9
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_CYCLES_DIV_BUSY,
|
|
0,
|
|
P6_CYCLES_DIV_BUSY,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llDividerBusyCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llDividerBusyCycles
|
|
},
|
|
{ // 10
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_ADS,
|
|
0,
|
|
P6_L2_ADS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2AddressStrobes),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2AddressStrobes
|
|
},
|
|
{ // 11
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_DBUS_BUSY,
|
|
0,
|
|
P6_L2_DBUS_BUSY,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2DataBusBusyCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataBusBusyCycles
|
|
},
|
|
{ // 12
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_DBUS_BUSY_RD,
|
|
0,
|
|
P6_L2_DBUS_BUSY_RD,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2DataBusToCpuBusyCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataBusToCpuBusyCycles
|
|
},
|
|
{ // 13
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_LINES_IN,
|
|
0,
|
|
P6_L2_LINES_IN,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesAllocated),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesAllocated
|
|
},
|
|
{ // 14
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_M_LINES_IN,
|
|
0,
|
|
P6_L2_M_LINES_IN,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesMState),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesMState
|
|
},
|
|
{ //15
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_LINES_OUT,
|
|
0,
|
|
P6_L2_LINES_OUT,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesRemoved),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesRemoved
|
|
},
|
|
{ // 16
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_M_LINES_OUT,
|
|
0,
|
|
P6_L2_M_LINES_OUT,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesMStateRemoved),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesMStateRemoved
|
|
},
|
|
{ // 17
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_IFETCH,
|
|
0,
|
|
P6_L2_IFETCH,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2InstructionFetches),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2InstructionFetches
|
|
},
|
|
{ // 18
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_LD,
|
|
0,
|
|
P6_L2_LD,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2DataLoads),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataLoads
|
|
},
|
|
{ // 19
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_ST,
|
|
0,
|
|
P6_L2_ST,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2DataStores),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataStores
|
|
},
|
|
{ // 20
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_L2_RQSTS,
|
|
0,
|
|
P6_L2_RQSTS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llL2Requests),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llL2Requests
|
|
},
|
|
{ // 21
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_DATA_MEM_REFS,
|
|
0,
|
|
P6_DATA_MEM_REFS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llDataMemoryReferences),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llDataMemoryReferences
|
|
},
|
|
{ // 22
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_DCU_LINES_IN,
|
|
0,
|
|
P6_DCU_LINES_IN,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llDCULinesAllocated),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llDCULinesAllocated
|
|
},
|
|
{ //23
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_DCU_M_LINES_IN,
|
|
0,
|
|
P6_DCU_M_LINES_IN,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llDCUMStateLinesAllocated),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesAllocated
|
|
},
|
|
{ // 24
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_DCU_M_LINES_OUT,
|
|
0,
|
|
P6_DCU_M_LINES_OUT,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llDCUMStateLinesEvicted),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesEvicted
|
|
},
|
|
{ // 25
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_DCU_MISS_OUTSTANDING,
|
|
0,
|
|
P6_DCU_MISS_OUTSTANDING,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llWeightedDCUMissesOutstd),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llWeightedDCUMissesOutstd
|
|
},
|
|
{ // 26
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_REQ_OUTSTANDING,
|
|
0,
|
|
P6_BUS_REQ_OUTSTANDING,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusRequestsOutstanding),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusRequestsOutstanding
|
|
},
|
|
{ // 27
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_BNR_DRV,
|
|
0,
|
|
P6_BUS_BNR_DRV,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusBNRPinDriveCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusBNRPinDriveCycles
|
|
},
|
|
{ // 28
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_DRDY_CLOCKS,
|
|
0,
|
|
P6_BUS_DRDY_CLOCKS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusDRDYAssertedClocks),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusDRDYAssertedClocks
|
|
},
|
|
{ // 29
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_LOCK_CLOCKS,
|
|
0,
|
|
P6_BUS_LOCK_CLOCKS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusLockAssertedClocks),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusLockAssertedClocks
|
|
},
|
|
{ //30
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_DATA_RCV,
|
|
0,
|
|
P6_BUS_DATA_RCV,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusClocksReceivingData),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusClocksReceivingData
|
|
},
|
|
{ // 31
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_BRD,
|
|
0,
|
|
P6_BUS_TRANS_BRD,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusBurstReadTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusBurstReadTransactions
|
|
},
|
|
{ // 32
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_RFO,
|
|
0,
|
|
P6_BUS_TRANS_RFO,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusReadForOwnershipTrans),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusReadForOwnershipTrans
|
|
},
|
|
{ // 33
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_WB,
|
|
0,
|
|
P6_BUS_TRANS_WB,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusWritebackTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusWritebackTransactions
|
|
},
|
|
{ // 34
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_IFETCH,
|
|
0,
|
|
P6_BUS_TRANS_IFETCH,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusInstructionFetches),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusInstructionFetches
|
|
},
|
|
{ // 35
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_INVAL,
|
|
0,
|
|
P6_BUS_TRANS_INVAL,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusInvalidateTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusInvalidateTransactions
|
|
},
|
|
{ // 36
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_PWR,
|
|
0,
|
|
P6_BUS_TRANS_PWR,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusPartialWriteTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusPartialWriteTransactions
|
|
},
|
|
{ // 37
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_P,
|
|
0,
|
|
P6_BUS_TRANS_P,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusPartialTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusPartialTransactions
|
|
},
|
|
{ // 38
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_IO,
|
|
0,
|
|
P6_BUS_TRANS_IO,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusIOTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusIOTransactions
|
|
},
|
|
{ // 39
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_DEF,
|
|
0,
|
|
P6_BUS_TRANS_DEF,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusDeferredTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusDeferredTransactions
|
|
},
|
|
{ // 40
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_BURST,
|
|
0,
|
|
P6_BUS_TRANS_BURST,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusBurstTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusBurstTransactions
|
|
},
|
|
{ // 41
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_MEM,
|
|
0,
|
|
P6_BUS_TRANS_MEM,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusMemoryTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusMemoryTransactions
|
|
},
|
|
{ // 42
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_TRANS_ANY,
|
|
0,
|
|
P6_BUS_TRANS_ANY,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusAllTransactions),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusAllTransactions
|
|
},
|
|
{ // 43
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_CPU_CLK_UNHALTED,
|
|
0,
|
|
P6_CPU_CLK_UNHALTED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llCPUWasNotHaltedCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llCPUWasNotHaltedCycles
|
|
},
|
|
{ // 44
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_HIT_DRV,
|
|
0,
|
|
P6_BUS_HIT_DRV,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusCPUDrivesHitCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHitCycles
|
|
},
|
|
{ // 45
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_HITM_DRV,
|
|
0,
|
|
P6_BUS_HITM_DRV,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusCPUDrivesHITMCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHITMCycles
|
|
},
|
|
{ // 46
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BUS_SNOOP_STALL,
|
|
0,
|
|
P6_BUS_SNOOP_STALL,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBusSnoopStalledCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBusSnoopStalledCycles
|
|
},
|
|
{ // 47
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_IFU_IFETCH,
|
|
0,
|
|
P6_IFU_IFETCH,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionFetches),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionFetches
|
|
},
|
|
{ // 48
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_IFU_IFETCH_MISS,
|
|
0,
|
|
P6_IFU_IFETCH_MISS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionFetchMisses),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionFetchMisses
|
|
},
|
|
{ // 49
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_ITLB_MISS,
|
|
0,
|
|
P6_ITLB_MISS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionTLBMisses),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionTLBMisses
|
|
},
|
|
{ // 50
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_IFU_MEM_STALL,
|
|
0,
|
|
P6_IFU_MEM_STALL,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionFetcthStalledCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionFetcthStalledCycles
|
|
},
|
|
{ // 51
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_ILD_STALL,
|
|
0,
|
|
P6_ILD_STALL,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionLenDecoderStalledCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionLenDecoderStalledCycles
|
|
},
|
|
{ // 52
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_RESOURCE_STALLS,
|
|
0,
|
|
P6_RESOURCE_STALLS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llResourceRelatedStalls),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llResourceRelatedStalls
|
|
},
|
|
{ // 53
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_INST_RETIRED,
|
|
0,
|
|
P6_INST_RETIRED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionsRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionsRetired
|
|
},
|
|
{ // 54
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_FLOPS,
|
|
0,
|
|
P6_FLOPS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llFPComputeOpersRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llFPComputeOpersRetired
|
|
},
|
|
{ // 55
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_UOPS_RETIRED,
|
|
0,
|
|
P6_UOPS_RETIRED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llUOPsRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llUOPsRetired
|
|
},
|
|
{ // 56
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BR_INST_RETIRED,
|
|
0,
|
|
P6_BR_INST_RETIRED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBranchesRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBranchesRetired
|
|
},
|
|
{ // 57
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BR_MISS_PRED_RETIRED,
|
|
0,
|
|
P6_BR_MISS_PRED_RETIRED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBranchMissPredictionsRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBranchMissPredictionsRetired
|
|
},
|
|
{ // 58
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_CYCLES_INT_MASKED,
|
|
0,
|
|
P6_CYCLES_INT_MASKED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInterruptsMaskedCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInterruptsMaskedCycles
|
|
},
|
|
{ // 59
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_CYCLES_INT_PENDING_AND_MASKED,
|
|
0,
|
|
P6_CYCLES_INT_PENDING_AND_MASKED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llIntPendingWhileMaskedCycles),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llIntPendingWhileMaskedCycles
|
|
},
|
|
{ // 60
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_HW_INT_RX,
|
|
0,
|
|
P6_HW_INT_RX,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llHardwareInterruptsReceived),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llHardwareInterruptsReceived
|
|
},
|
|
{ // 61
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BR_TAKEN_RETIRED,
|
|
0,
|
|
P6_BR_TAKEN_RETIRED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llTakenBranchesRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llTakenBranchesRetired
|
|
},
|
|
{ // 62
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BR_MISS_PRED_TAKEN_RET,
|
|
0,
|
|
P6_BR_MISS_PRED_TAKEN_RET,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llTakenBranchMissPredRetired),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llTakenBranchMissPredRetired
|
|
},
|
|
{ // 63
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_INST_DECODED,
|
|
0,
|
|
P6_INST_DECODED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llInstructionsDecoded),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionsDecoded
|
|
},
|
|
{ // 64
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_PARTIAL_RAT_STALLS,
|
|
0,
|
|
P6_PARTIAL_RAT_STALLS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llPartialRegisterStalls),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llPartialRegisterStalls
|
|
},
|
|
{ // 65
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BR_INST_DECODED,
|
|
0,
|
|
P6_BR_INST_DECODED,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBranchesDecoded),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBranchesDecoded
|
|
},
|
|
{ // 66
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BTB_MISSES,
|
|
0,
|
|
P6_BTB_MISSES,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBTBMisses),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBTBMisses
|
|
},
|
|
{ // 67
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BR_BOGUS,
|
|
0,
|
|
P6_BR_BOGUS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBogusBranches),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBogusBranches
|
|
},
|
|
{ // 68
|
|
sizeof(PERF_COUNTER_DEFINITION),
|
|
P6_BACLEARS,
|
|
0,
|
|
P6_BACLEARS,
|
|
0,
|
|
0,
|
|
PERF_DETAIL_WIZARD,
|
|
PERF_COUNTER_BULK_COUNT,
|
|
sizeof(((PP6_COUNTER_DATA)0)->llBACLEARSAsserted),
|
|
(DWORD)&((PP6_COUNTER_DATA)0)->llBACLEARSAsserted
|
|
}
|
|
};
|
|
|
|
// load look-up table that maps counter event ID to data field in the
|
|
// perf data block
|
|
//
|
|
|
|
DWORD P6IndexToData[] = {
|
|
/* 0x00 */ PENT_INDEX_NOT_USED,
|
|
/* 0x01 */ PENT_INDEX_NOT_USED,
|
|
/* 0x02 */ PENT_INDEX_NOT_USED,
|
|
/* 0x03 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llStoreBufferBlocks),
|
|
/* 0x04 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llStoreBufferDrainCycles),
|
|
/* 0x05 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llMisalignedDataRef),
|
|
/* 0x06 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llSegmentLoads),
|
|
/* 0x07 */ PENT_INDEX_NOT_USED,
|
|
/* 0x08 */ PENT_INDEX_NOT_USED,
|
|
/* 0x09 */ PENT_INDEX_NOT_USED,
|
|
/* 0x0a */ PENT_INDEX_NOT_USED,
|
|
/* 0x0b */ PENT_INDEX_NOT_USED,
|
|
/* 0x0c */ PENT_INDEX_NOT_USED,
|
|
/* 0x0d */ PENT_INDEX_NOT_USED,
|
|
/* 0x0e */ PENT_INDEX_NOT_USED,
|
|
/* 0x0f */ PENT_INDEX_NOT_USED,
|
|
/* 0x10 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llFLOPSExecuted),
|
|
/* 0x11 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llMicrocodeFPExceptions),
|
|
/* 0x12 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llMultiplies),
|
|
/* 0x13 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDivides),
|
|
/* 0x14 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDividerBusyCycles),
|
|
/* 0x15 */ PENT_INDEX_NOT_USED,
|
|
/* 0x16 */ PENT_INDEX_NOT_USED,
|
|
/* 0x17 */ PENT_INDEX_NOT_USED,
|
|
/* 0x18 */ PENT_INDEX_NOT_USED,
|
|
/* 0x19 */ PENT_INDEX_NOT_USED,
|
|
/* 0x1a */ PENT_INDEX_NOT_USED,
|
|
/* 0x1b */ PENT_INDEX_NOT_USED,
|
|
/* 0x1c */ PENT_INDEX_NOT_USED,
|
|
/* 0x1d */ PENT_INDEX_NOT_USED,
|
|
/* 0x1e */ PENT_INDEX_NOT_USED,
|
|
/* 0x1f */ PENT_INDEX_NOT_USED,
|
|
/* 0x20 */ PENT_INDEX_NOT_USED,
|
|
/* 0x21 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2AddressStrobes),
|
|
/* 0x22 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataBusBusyCycles),
|
|
/* 0x23 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataBusToCpuBusyCycles),
|
|
/* 0x24 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesAllocated),
|
|
/* 0x25 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesMState),
|
|
/* 0x26 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesRemoved),
|
|
/* 0x27 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesMStateRemoved),
|
|
/* 0x28 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2InstructionFetches),
|
|
/* 0x29 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataLoads),
|
|
/* 0x2a */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataStores),
|
|
/* 0x2b */ PENT_INDEX_NOT_USED,
|
|
/* 0x2c */ PENT_INDEX_NOT_USED,
|
|
/* 0x2d */ PENT_INDEX_NOT_USED,
|
|
/* 0x2e */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2Requests),
|
|
/* 0x2f */ PENT_INDEX_NOT_USED,
|
|
/* 0x30 */ PENT_INDEX_NOT_USED,
|
|
/* 0x31 */ PENT_INDEX_NOT_USED,
|
|
/* 0x32 */ PENT_INDEX_NOT_USED,
|
|
/* 0x33 */ PENT_INDEX_NOT_USED,
|
|
/* 0x34 */ PENT_INDEX_NOT_USED,
|
|
/* 0x35 */ PENT_INDEX_NOT_USED,
|
|
/* 0x36 */ PENT_INDEX_NOT_USED,
|
|
/* 0x37 */ PENT_INDEX_NOT_USED,
|
|
/* 0x38 */ PENT_INDEX_NOT_USED,
|
|
/* 0x39 */ PENT_INDEX_NOT_USED,
|
|
/* 0x3a */ PENT_INDEX_NOT_USED,
|
|
/* 0x3b */ PENT_INDEX_NOT_USED,
|
|
/* 0x3c */ PENT_INDEX_NOT_USED,
|
|
/* 0x3d */ PENT_INDEX_NOT_USED,
|
|
/* 0x3e */ PENT_INDEX_NOT_USED,
|
|
/* 0x3f */ PENT_INDEX_NOT_USED,
|
|
/* 0x40 */ PENT_INDEX_NOT_USED,
|
|
/* 0x41 */ PENT_INDEX_NOT_USED,
|
|
/* 0x42 */ PENT_INDEX_NOT_USED,
|
|
/* 0x43 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDataMemoryReferences),
|
|
/* 0x44 */ PENT_INDEX_NOT_USED,
|
|
/* 0x45 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDCULinesAllocated),
|
|
/* 0x46 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesAllocated),
|
|
/* 0x47 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesEvicted),
|
|
/* 0x48 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llWeightedDCUMissesOutstd),
|
|
/* 0x49 */ PENT_INDEX_NOT_USED,
|
|
/* 0x4a */ PENT_INDEX_NOT_USED,
|
|
/* 0x4b */ PENT_INDEX_NOT_USED,
|
|
/* 0x4c */ PENT_INDEX_NOT_USED,
|
|
/* 0x4d */ PENT_INDEX_NOT_USED,
|
|
/* 0x4e */ PENT_INDEX_NOT_USED,
|
|
/* 0x4f */ PENT_INDEX_NOT_USED,
|
|
/* 0x50 */ PENT_INDEX_NOT_USED,
|
|
/* 0x51 */ PENT_INDEX_NOT_USED,
|
|
/* 0x52 */ PENT_INDEX_NOT_USED,
|
|
/* 0x53 */ PENT_INDEX_NOT_USED,
|
|
/* 0x54 */ PENT_INDEX_NOT_USED,
|
|
/* 0x55 */ PENT_INDEX_NOT_USED,
|
|
/* 0x56 */ PENT_INDEX_NOT_USED,
|
|
/* 0x57 */ PENT_INDEX_NOT_USED,
|
|
/* 0x58 */ PENT_INDEX_NOT_USED,
|
|
/* 0x59 */ PENT_INDEX_NOT_USED,
|
|
/* 0x5a */ PENT_INDEX_NOT_USED,
|
|
/* 0x5b */ PENT_INDEX_NOT_USED,
|
|
/* 0x5c */ PENT_INDEX_NOT_USED,
|
|
/* 0x5d */ PENT_INDEX_NOT_USED,
|
|
/* 0x5e */ PENT_INDEX_NOT_USED,
|
|
/* 0x5f */ PENT_INDEX_NOT_USED,
|
|
/* 0x60 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusRequestsOutstanding),
|
|
/* 0x61 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusBNRPinDriveCycles),
|
|
/* 0x62 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusDRDYAssertedClocks),
|
|
/* 0x63 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusLockAssertedClocks),
|
|
/* 0x64 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusClocksReceivingData),
|
|
/* 0x65 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusBurstReadTransactions),
|
|
/* 0x66 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusReadForOwnershipTrans),
|
|
/* 0x67 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusWritebackTransactions),
|
|
/* 0x68 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusInstructionFetches),
|
|
/* 0x69 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusInvalidateTransactions),
|
|
/* 0x6a */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusPartialWriteTransactions),
|
|
/* 0x6b */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusPartialTransactions),
|
|
/* 0x6c */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusIOTransactions),
|
|
/* 0x6d */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusDeferredTransactions),
|
|
/* 0x6e */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusBurstTransactions),
|
|
/* 0x6f */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusMemoryTransactions),
|
|
/* 0x70 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusAllTransactions),
|
|
/* 0x71 */ PENT_INDEX_NOT_USED,
|
|
/* 0x72 */ PENT_INDEX_NOT_USED,
|
|
/* 0x73 */ PENT_INDEX_NOT_USED,
|
|
/* 0x74 */ PENT_INDEX_NOT_USED,
|
|
/* 0x75 */ PENT_INDEX_NOT_USED,
|
|
/* 0x76 */ PENT_INDEX_NOT_USED,
|
|
/* 0x77 */ PENT_INDEX_NOT_USED,
|
|
/* 0x78 */ PENT_INDEX_NOT_USED,
|
|
/* 0x79 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llCPUWasNotHaltedCycles),
|
|
/* 0x7a */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHitCycles),
|
|
/* 0x7b */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHITMCycles),
|
|
/* 0x7c */ PENT_INDEX_NOT_USED,
|
|
/* 0x7d */ PENT_INDEX_NOT_USED,
|
|
/* 0x7e */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusSnoopStalledCycles),
|
|
/* 0x7f */ PENT_INDEX_NOT_USED,
|
|
/* 0x80 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionFetches),
|
|
/* 0x81 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionFetchMisses),
|
|
/* 0x82 */ PENT_INDEX_NOT_USED,
|
|
/* 0x83 */ PENT_INDEX_NOT_USED,
|
|
/* 0x84 */ PENT_INDEX_NOT_USED,
|
|
/* 0x85 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionTLBMisses),
|
|
/* 0x86 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionFetcthStalledCycles),
|
|
/* 0x87 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionLenDecoderStalledCycles),
|
|
/* 0x88 */ PENT_INDEX_NOT_USED,
|
|
/* 0x89 */ PENT_INDEX_NOT_USED,
|
|
/* 0x8a */ PENT_INDEX_NOT_USED,
|
|
/* 0x8b */ PENT_INDEX_NOT_USED,
|
|
/* 0x8c */ PENT_INDEX_NOT_USED,
|
|
/* 0x8d */ PENT_INDEX_NOT_USED,
|
|
/* 0x8e */ PENT_INDEX_NOT_USED,
|
|
/* 0x8f */ PENT_INDEX_NOT_USED,
|
|
/* 0x90 */ PENT_INDEX_NOT_USED,
|
|
/* 0x91 */ PENT_INDEX_NOT_USED,
|
|
/* 0x92 */ PENT_INDEX_NOT_USED,
|
|
/* 0x93 */ PENT_INDEX_NOT_USED,
|
|
/* 0x94 */ PENT_INDEX_NOT_USED,
|
|
/* 0x95 */ PENT_INDEX_NOT_USED,
|
|
/* 0x96 */ PENT_INDEX_NOT_USED,
|
|
/* 0x97 */ PENT_INDEX_NOT_USED,
|
|
/* 0x98 */ PENT_INDEX_NOT_USED,
|
|
/* 0x99 */ PENT_INDEX_NOT_USED,
|
|
/* 0x9a */ PENT_INDEX_NOT_USED,
|
|
/* 0x9b */ PENT_INDEX_NOT_USED,
|
|
/* 0x9c */ PENT_INDEX_NOT_USED,
|
|
/* 0x9d */ PENT_INDEX_NOT_USED,
|
|
/* 0x9e */ PENT_INDEX_NOT_USED,
|
|
/* 0x9f */ PENT_INDEX_NOT_USED,
|
|
/* 0xa0 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa1 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llResourceRelatedStalls),
|
|
/* 0xa3 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa4 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa5 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa6 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa7 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa8 */ PENT_INDEX_NOT_USED,
|
|
/* 0xa9 */ PENT_INDEX_NOT_USED,
|
|
/* 0xaa */ PENT_INDEX_NOT_USED,
|
|
/* 0xab */ PENT_INDEX_NOT_USED,
|
|
/* 0xac */ PENT_INDEX_NOT_USED,
|
|
/* 0xad */ PENT_INDEX_NOT_USED,
|
|
/* 0xae */ PENT_INDEX_NOT_USED,
|
|
/* 0xaf */ PENT_INDEX_NOT_USED,
|
|
/* 0xb0 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb1 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb2 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb3 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb4 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb5 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb6 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb7 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb8 */ PENT_INDEX_NOT_USED,
|
|
/* 0xb9 */ PENT_INDEX_NOT_USED,
|
|
/* 0xba */ PENT_INDEX_NOT_USED,
|
|
/* 0xbb */ PENT_INDEX_NOT_USED,
|
|
/* 0xbc */ PENT_INDEX_NOT_USED,
|
|
/* 0xbd */ PENT_INDEX_NOT_USED,
|
|
/* 0xbe */ PENT_INDEX_NOT_USED,
|
|
/* 0xbf */ PENT_INDEX_NOT_USED,
|
|
/* 0xc0 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionsRetired),
|
|
/* 0xc1 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llFPComputeOpersRetired),
|
|
/* 0xc2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llUOPsRetired),
|
|
/* 0xc3 */ PENT_INDEX_NOT_USED,
|
|
/* 0xc4 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBranchesRetired),
|
|
/* 0xc5 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBranchMissPredictionsRetired),
|
|
/* 0xc6 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInterruptsMaskedCycles),
|
|
/* 0xc7 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llIntPendingWhileMaskedCycles),
|
|
/* 0xc8 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llHardwareInterruptsReceived),
|
|
/* 0xc9 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llTakenBranchesRetired),
|
|
/* 0xca */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llTakenBranchMissPredRetired),
|
|
/* 0xcb */ PENT_INDEX_NOT_USED,
|
|
/* 0xcc */ PENT_INDEX_NOT_USED,
|
|
/* 0xcd */ PENT_INDEX_NOT_USED,
|
|
/* 0xce */ PENT_INDEX_NOT_USED,
|
|
/* 0xcf */ PENT_INDEX_NOT_USED,
|
|
/* 0xd0 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionsDecoded),
|
|
/* 0xd1 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llPartialRegisterStalls),
|
|
/* 0xd3 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd4 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd5 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd6 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd7 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd8 */ PENT_INDEX_NOT_USED,
|
|
/* 0xd9 */ PENT_INDEX_NOT_USED,
|
|
/* 0xda */ PENT_INDEX_NOT_USED,
|
|
/* 0xdb */ PENT_INDEX_NOT_USED,
|
|
/* 0xdc */ PENT_INDEX_NOT_USED,
|
|
/* 0xdd */ PENT_INDEX_NOT_USED,
|
|
/* 0xde */ PENT_INDEX_NOT_USED,
|
|
/* 0xdf */ PENT_INDEX_NOT_USED,
|
|
/* 0xe0 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBranchesDecoded),
|
|
/* 0xe1 */ PENT_INDEX_NOT_USED,
|
|
/* 0xe2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBTBMisses),
|
|
/* 0xe3 */ PENT_INDEX_NOT_USED,
|
|
/* 0xe4 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBogusBranches),
|
|
/* 0xe5 */ PENT_INDEX_NOT_USED,
|
|
/* 0xe6 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBACLEARSAsserted),
|
|
/* 0xe7 */ PENT_INDEX_NOT_USED,
|
|
/* 0xe8 */ PENT_INDEX_NOT_USED,
|
|
/* 0xe9 */ PENT_INDEX_NOT_USED,
|
|
/* 0xea */ PENT_INDEX_NOT_USED,
|
|
/* 0xeb */ PENT_INDEX_NOT_USED,
|
|
/* 0xec */ PENT_INDEX_NOT_USED,
|
|
/* 0xed */ PENT_INDEX_NOT_USED,
|
|
/* 0xee */ PENT_INDEX_NOT_USED,
|
|
/* 0xef */ PENT_INDEX_NOT_USED,
|
|
/* 0xf0 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf1 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf2 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf3 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf4 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf5 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf6 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf7 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf8 */ PENT_INDEX_NOT_USED,
|
|
/* 0xf9 */ PENT_INDEX_NOT_USED,
|
|
/* 0xfa */ PENT_INDEX_NOT_USED,
|
|
/* 0xfb */ PENT_INDEX_NOT_USED,
|
|
/* 0xfc */ PENT_INDEX_NOT_USED,
|
|
/* 0xfd */ PENT_INDEX_NOT_USED,
|
|
/* 0xfe */ PENT_INDEX_NOT_USED,
|
|
/* 0xff */ PENT_INDEX_NOT_USED
|
|
};
|
|
|
|
// define number of direct counters
|
|
DWORD P6IndexMax = sizeof(P6IndexToData) / sizeof(P6IndexToData[0]);
|
|
|