20#define MSR_IA32_RTIT_OUTPUT_BASE 0x00000560
21#define MSR_IA32_RTIT_OUTPUT_MASK_PTRS 0x00000561
22#define MSR_IA32_RTIT_CTL 0x00000570
23#define MSR_IA32_RTIT_STATUS 0x00000571
24#define MSR_IA32_RTIT_CR3_MATCH 0x00000572
26#define MSR_IA32_RTIT_ADDR0_A 0x00000580
27#define MSR_IA32_RTIT_ADDR0_B 0x00000581
28#define MSR_IA32_RTIT_ADDR1_A 0x00000582
29#define MSR_IA32_RTIT_ADDR1_B 0x00000583
30#define MSR_IA32_RTIT_ADDR2_A 0x00000584
31#define MSR_IA32_RTIT_ADDR2_B 0x00000585
32#define MSR_IA32_RTIT_ADDR3_A 0x00000586
33#define MSR_IA32_RTIT_ADDR3_B 0x00000587
38#define MSR_IA32_PERF_GLOBAL_STATUS 0x0000038E
39#define MSR_IA32_PERF_GLOBAL_OVF_CTRL 0x00000390
44#define PERF_GLOBAL_STATUS_TOPA_PMI (1ULL << 55)
50#define PT_PAGE_SIZE 0x1000ULL
51#define PT_DEFAULT_BUFFER_SIZE 0x200000ULL
52#define PT_OVERFLOW_SIZE PT_PAGE_SIZE
53#define PT_MAX_ADDR_RANGES 4
60#define PT_MAX_CPUS_FOR_MMAP 64
65#define PT_TOPA_SIZE_4K 0
66#define PT_TOPA_SIZE_8K 1
67#define PT_TOPA_SIZE_16K 2
68#define PT_TOPA_SIZE_32K 3
69#define PT_TOPA_SIZE_64K 4
70#define PT_TOPA_SIZE_128K 5
71#define PT_TOPA_SIZE_256K 6
72#define PT_TOPA_SIZE_512K 7
73#define PT_TOPA_SIZE_1M 8
74#define PT_TOPA_SIZE_2M 9
75#define PT_TOPA_SIZE_4M 10
76#define PT_TOPA_SIZE_8M 11
77#define PT_TOPA_SIZE_16M 12
78#define PT_TOPA_SIZE_32M 13
79#define PT_TOPA_SIZE_64M 14
80#define PT_TOPA_SIZE_128M 15
RequestedActionOfThePacket Value(0x1) 00000000
Intel PT IP filter range.
Definition PtDefinitions.h:230
UINT64 End
Definition PtDefinitions.h:232
UINT64 Start
Definition PtDefinitions.h:231
BOOLEAN IsStopRange
Definition PtDefinitions.h:233
Per-CPU PT buffer layout.
Definition PtDefinitions.h:288
PT_TOPA_ENTRY * TopaVa
Definition PtDefinitions.h:292
UINT64 OutputPhysical
Definition PtDefinitions.h:299
PVOID OutputVa
Definition PtDefinitions.h:298
UINT64 TopaPhysical
Definition PtDefinitions.h:293
UINT64 OutputSize
Definition PtDefinitions.h:300
PVOID OverflowVa
Definition PtDefinitions.h:305
UINT64 OverflowPhysical
Definition PtDefinitions.h:306
Discovered Intel PT capabilities (populated from CPUID leaf 0x14).
Definition PtDefinitions.h:191
UINT32 TopaOutput
Definition PtDefinitions.h:199
UINT32 IpFiltering
Definition PtDefinitions.h:194
UINT32 TopaMultiEntry
Definition PtDefinitions.h:200
UINT32 Cr3Filtering
Definition PtDefinitions.h:192
UINT32 TransportOutput
Definition PtDefinitions.h:202
UINT32 IpPayloadsAreLip
Definition PtDefinitions.h:203
UINT32 VmxSupport
Definition PtDefinitions.h:198
UINT32 NumAddrRanges
Definition PtDefinitions.h:206
UINT32 PtwriteSupport
Definition PtDefinitions.h:196
UINT16 PsbFreqBitmap
Definition PtDefinitions.h:209
UINT32 PsbCycConfigurable
Definition PtDefinitions.h:193
UINT16 MtcPeriodBitmap
Definition PtDefinitions.h:207
UINT32 SingleRangeOutput
Definition PtDefinitions.h:201
UINT32 Reserved
Definition PtDefinitions.h:204
UINT16 CycThresholdBitmap
Definition PtDefinitions.h:208
UINT32 PowerEventTrace
Definition PtDefinitions.h:197
UINT32 MtcSupport
Definition PtDefinitions.h:195
Trace output descriptor.
Definition PtDefinitions.h:339
PVOID Buffer
Definition PtDefinitions.h:340
UINT64 Length
Definition PtDefinitions.h:341
UINT64 WriteOffset
Definition PtDefinitions.h:342
Per-CPU Intel PT state — one of these per logical processor.
Definition PtDefinitions.h:314
PT_TRACE_CONFIG Config
Definition PtDefinitions.h:317
UINT64 TotalBytesCaptured
Definition PtDefinitions.h:319
PT_RTIT_CTL_REGISTER SavedCtl
Definition PtDefinitions.h:316
PT_STATE State
Definition PtDefinitions.h:318
PT_BUFFER Buffer
Definition PtDefinitions.h:315
Intel PT trace configuration — what the user specifies.
Definition PtDefinitions.h:241
BOOLEAN EnableCyc
Definition PtDefinitions.h:261
BOOLEAN EnableRetCompression
Definition PtDefinitions.h:262
BOOLEAN TraceUser
Definition PtDefinitions.h:245
PT_ADDR_RANGE AddrRanges[PT_MAX_ADDR_RANGES]
Definition PtDefinitions.h:253
BOOLEAN TraceKernel
Definition PtDefinitions.h:246
UINT8 PsbFreq
Definition PtDefinitions.h:265
UINT64 BufferSize
Definition PtDefinitions.h:270
BOOLEAN EnableMtc
Definition PtDefinitions.h:260
UINT32 NumAddrRanges
Definition PtDefinitions.h:252
UINT8 CycThresh
Definition PtDefinitions.h:264
BOOLEAN EnableBranch
Definition PtDefinitions.h:258
UINT64 TargetCr3
Definition PtDefinitions.h:247
BOOLEAN EnableTsc
Definition PtDefinitions.h:259
UINT8 MtcFreq
Definition PtDefinitions.h:263
One per-CPU descriptor returned by the PT mmap surface.
Definition PtDefinitions.h:364
UINT64 UserVa
Definition PtDefinitions.h:367
UINT64 Size
Definition PtDefinitions.h:368
UINT32 CpuId
Definition PtDefinitions.h:365
UINT32 Reserved
Definition PtDefinitions.h:366
IA32_RTIT_OUTPUT_MASK_PTRS — Output position tracker.
Definition PtDefinitions.h:151
UINT64 LowerMask
Definition PtDefinitions.h:154
UINT64 OutputOffset
Definition PtDefinitions.h:156
UINT64 Value
Definition PtDefinitions.h:158
UINT64 MaskOrTableOffset
Definition PtDefinitions.h:155
IA32_RTIT_CTL — PT master control register.
Definition PtDefinitions.h:91
UINT64 CycEn
Definition PtDefinitions.h:95
UINT64 Addr3Cfg
Definition PtDefinitions.h:117
UINT64 TraceEn
Definition PtDefinitions.h:94
UINT64 Addr2Cfg
Definition PtDefinitions.h:116
UINT64 Reserved0
Definition PtDefinitions.h:109
UINT64 FupOnPtw
Definition PtDefinitions.h:99
UINT64 Addr1Cfg
Definition PtDefinitions.h:115
UINT64 DisRetc
Definition PtDefinitions.h:105
UINT64 User
Definition PtDefinitions.h:97
UINT64 BranchEn
Definition PtDefinitions.h:107
UINT64 Reserved1
Definition PtDefinitions.h:111
UINT64 ToPA
Definition PtDefinitions.h:102
UINT64 PwrEvtEn
Definition PtDefinitions.h:98
UINT64 FabricEn
Definition PtDefinitions.h:100
UINT64 MtcEn
Definition PtDefinitions.h:103
UINT64 Cr3Filter
Definition PtDefinitions.h:101
UINT64 PtwEn
Definition PtDefinitions.h:106
UINT64 CycThresh
Definition PtDefinitions.h:110
UINT64 Reserved2
Definition PtDefinitions.h:113
UINT64 MtcFreq
Definition PtDefinitions.h:108
UINT64 Os
Definition PtDefinitions.h:96
UINT64 Reserved3
Definition PtDefinitions.h:118
UINT64 PsbFreq
Definition PtDefinitions.h:112
UINT64 TscEn
Definition PtDefinitions.h:104
UINT64 Addr0Cfg
Definition PtDefinitions.h:114
IA32_RTIT_STATUS — PT status / error register.
Definition PtDefinitions.h:128
UINT64 Value
Definition PtDefinitions.h:143
UINT64 FilterEn
Definition PtDefinitions.h:131
UINT64 ContextEn
Definition PtDefinitions.h:132
UINT64 Error
Definition PtDefinitions.h:135
UINT64 Reserved0
Definition PtDefinitions.h:134
UINT64 Reserved2
Definition PtDefinitions.h:141
UINT64 PendTopaPmi
Definition PtDefinitions.h:137
UINT64 Stopped
Definition PtDefinitions.h:136
UINT64 Reserved1
Definition PtDefinitions.h:139
UINT64 PacketByteCnt
Definition PtDefinitions.h:140
UINT64 TriggerEn
Definition PtDefinitions.h:133
UINT64 PendPsbPmi
Definition PtDefinitions.h:138
ToPA Table Entry.
Definition PtDefinitions.h:166
UINT64 Reserved0
Definition PtDefinitions.h:170
UINT64 Reserved2
Definition PtDefinitions.h:174
UINT64 Stop
Definition PtDefinitions.h:173
UINT64 End
Definition PtDefinitions.h:169
UINT64 Reserved3
Definition PtDefinitions.h:176
UINT64 Reserved4
Definition PtDefinitions.h:178
UINT64 Size
Definition PtDefinitions.h:175
UINT64 BaseAddr
Definition PtDefinitions.h:177
UINT64 Reserved1
Definition PtDefinitions.h:172
UINT64 Value
Definition PtDefinitions.h:180
UINT64 Int
Definition PtDefinitions.h:171