Skip to content

Instantly share code, notes, and snippets.

@csujedihy
Created April 27, 2025 08:05
Show Gist options
  • Save csujedihy/02d67e7c88081f1e69b96dedf42f9ea9 to your computer and use it in GitHub Desktop.
Save csujedihy/02d67e7c88081f1e69b96dedf42f9ea9 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8"?>
<WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation">
<Profiles>
<SystemCollector Id="SystemCollector" Name="NT Kernel Logger">
<BufferSize Value="4096"/>
<Buffers Value="128"/>
</SystemCollector>
<EventCollector Id="EC_HighVolume" Name="High Volume">
<BufferSize Value="1024"/>
<Buffers Value="5" PercentageOfTotalMemory="true"/>
</EventCollector>
<EventCollector Id="EC_HighVolume1GB" Name="High Volume (1GB limit)" Base="EC_HighVolume">
<Buffers Value="20" PercentageOfTotalMemory="true" MaximumBufferSpace="1024"/>
</EventCollector>
<SystemProvider Id="SystemProviderCpu">
<Keywords>
<Keyword Value="ProcessThread"/>
<Keyword Value="Loader"/>
<Keyword Value="CSwitch"/>
<Keyword Value="ReadyThread"/>
<Keyword Value="SampledProfile"/>
<Keyword Value="DPC"/>
<Keyword Value="Interrupt"/>
<Keyword Value="IdleStates"/>
</Keywords>
<Stacks>
<Stack Value="CSwitch"/>
<Stack Value="ReadyThread"/>
<Stack Value="SampledProfile"/>
</Stacks>
</SystemProvider>
<SystemProvider Id="SystemProviderCpuSampled">
<Keywords>
<Keyword Value="ProcessThread"/>
<Keyword Value="Loader"/>
<Keyword Value="SampledProfile"/>
<Keyword Value="DPC"/>
<Keyword Value="Interrupt"/>
</Keywords>
<Stacks>
<Stack Value="SampledProfile"/>
</Stacks>
</SystemProvider>
<SystemProvider Id="SystemProviderHardwareSampled">
<Keywords>
<Keyword Value="ProcessThread" />
<Keyword Value="Loader" />
<Keyword Value="PmcProfile" />
</Keywords>
<Stacks>
<Stack Value="PmcInterrupt"/>
</Stacks>
</SystemProvider>
<MicroArchitecturalConfig Id="Intel" Base="">
<ProfileSources Architecture="INTEL" Description="Intel Counters">
<!-- SQ_MISC.SPLIT_LOCK -->
<ProfileSource Name="SplitLock" Event="0xF4" Unit="0x10" />
<!-- MEM_INST_RETIRED.SPLIT_LOADS -->
<ProfileSource Name="SplitLoad" Event="0xD0" Unit="0x41" />
<!-- MEM_INST_RETIRED.LOCK_LOADS -->
<ProfileSource Name="LockLoad" Event="0xD0" Unit="0x21" />
</ProfileSources>
</MicroArchitecturalConfig>
<HardwareCounter Id="Hardware_Intel_Sampled" Base="" Strict="true">
<MicroArchitecturalConfigId Value="Intel"></MicroArchitecturalConfigId>
<SampledCounters>
<SampledCounter Value="CacheMisses" Interval="10000"/>
<SampledCounter Value="SplitLock" Interval="10000"/>
<SampledCounter Value="SplitLoad" Interval="10000"/>
<SampledCounter Value="LockLoad" Interval="10000"/>
</SampledCounters>
<!-- ProcessorTrace captures more (and much larger) hardware data, but how to decode? -->
<!--
<ProcessorTrace>
<BufferSize Value="32" />
<CodeMode Value="UserKernel" />
<Events>
<Event Value="PmcInterrupt"></Event>
</Events>
</ProcessorTrace>
-->
</HardwareCounter>
<!-- Leave the highest keywords bit unset to work around downlevel WPR bug. -->
<EventProvider Id="EP_XdpEtw" Name="580bbdea-b364-4369-b291-d3539e35d20b" Level="5" />
<EventProvider Id="EP_XdpEtwPerFrame" Name="580bbdea-b364-4369-b291-d3539e35d20b" Level="25" />
<EventProvider Id="EP_XdpWpp" Name="D6143B5C-9FD6-44BA-BA02-FAD9EA0C263D" Level="5" NonPagedMemory="true">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_EbpfEtw" Name="394f321c-5cf4-404c-aa34-4df1428a7f9c" NonPagedMemory="true"/>
<EventProvider Id="EP_SpinXskWpp" Name="D6143B5D-9FD6-44BA-BA02-FAD9EA0C263D" Level="5">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_XdpMpWpp" Name="D6143B5E-9FD6-44BA-BA02-FAD9EA0C263D" Level="5" NonPagedMemory="true">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_FnMpWpp" Name="3207D515-BB97-4C97-9B49-5EB25829C43F" Level="5" NonPagedMemory="true">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_FndisWpp" Name="D6143B60-9FD6-44BA-BA02-FAD9EA0C263D" Level="5" NonPagedMemory="true">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_FnLwfWpp" Name="D6143B61-9FD6-44BA-BA02-FAD9EA0C263D" Level="5" NonPagedMemory="true">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_FnSockWpp" Name="9A90334B-68EE-43E5-8FFA-AEF115CE44A1" Level="5" NonPagedMemory="true">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_XdpFnTestWpp" Name="D6143B62-9FD6-44BA-BA02-FAD9EA0C263D" Level="5">
<Keywords>
<Keyword Value="0x7FFFFFFFFFFFFFFF" />
</Keywords>
</EventProvider>
<!-- Windows OS providers -->
<EventProvider Id="EP_MicrosoftWindowsTcpipPerPacket" Name="2F07E2EE-15DB-40F1-90EF-9D7BA282188A" Level="17" />
<EventProvider Id="EP_MicrosoftWindowsWinsockAfd" Name="E53C6823-7BB8-44BB-90DC-3F86090D48A6" Level="5" />
<Profile Id="XDP.Verbose.File" Name="XDP" Description="XDP" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<EventCollectorId Value="EC_HighVolume">
<EventProviders>
<EventProviderId Value="EP_XdpEtwPerFrame" />
<EventProviderId Value="EP_XdpWpp" />
<EventProviderId Value="EP_EbpfEtw" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="XdpFunctional.Verbose.File" Name="XdpFunctional" Description="XDP Functional Test" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<EventCollectorId Value="EC_HighVolume">
<EventProviders>
<EventProviderId Value="EP_XdpEtwPerFrame" />
<EventProviderId Value="EP_XdpWpp" />
<EventProviderId Value="EP_EbpfEtw" />
<EventProviderId Value="EP_FnMpWpp" />
<EventProviderId Value="EP_FnLwfWpp" />
<EventProviderId Value="EP_FnSockWpp" />
<EventProviderId Value="EP_XdpFnTestWpp" />
<EventProviderId Value="EP_MicrosoftWindowsTcpipPerPacket" />
<EventProviderId Value="EP_MicrosoftWindowsWinsockAfd" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="SpinXsk.Verbose.File" Name="SpinXsk" Description="XDP SpinXsk Stress Test" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<EventCollectorId Value="EC_HighVolume">
<EventProviders>
<EventProviderId Value="EP_XdpEtw" />
<EventProviderId Value="EP_XdpWpp" />
<EventProviderId Value="EP_SpinXskWpp" />
<EventProviderId Value="EP_XdpMpWpp" />
<EventProviderId Value="EP_FndisWpp" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile
Id="SpinXsk.Verbose.Memory"
Base="SpinXsk.Verbose.File"
LoggingMode = "Memory"
DetailLevel = "Verbose"
Name = "SpinXsk"
Description = "XDP SpinXsk Stress Test"/>
<Profile Id="SpinXskEbpf.Verbose.Memory" Name="SpinXskEbpf" Description="XDP SpinXsk Stress Test (eBPF)" LoggingMode="Memory" DetailLevel="Verbose">
<Collectors>
<EventCollectorId Value="EC_HighVolume1GB">
<EventProviders>
<EventProviderId Value="EP_EbpfEtw" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="CpuCswitchSample.Verbose.File" Name="CpuCswitchSample" Description="CPU precise and sampled profile" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<SystemCollectorId Value="SystemCollector">
<SystemProviderId Value="SystemProviderCpu"/>
</SystemCollectorId>
</Collectors>
</Profile>
<Profile Id="CpuSample.Verbose.File" Name="CpuSample" Description="CPU sampled profile" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<SystemCollectorId Value="SystemCollector">
<SystemProviderId Value="SystemProviderCpuSampled"/>
</SystemCollectorId>
</Collectors>
</Profile>
<Profile Id="CpuHardwareSample.Verbose.File" Name="CpuHardwareSample" Description="CPU hardware sampled profile" LoggingMode="File" DetailLevel="Verbose">
<Collectors>
<SystemCollectorId Value="SystemCollector">
<SystemProviderId Value="SystemProviderHardwareSampled" />
<HardwareCounterId Value="Hardware_Intel_Sampled"/>
</SystemCollectorId>
</Collectors>
</Profile>
</Profiles>
</WindowsPerformanceRecorder>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment