Windows power plan settings explorer utility

Discussion in 'Operating Systems' started by mbk1969, Aug 3, 2017.

  1. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    .pow file is not reliable for deployment because it uses default values for unchanged settings. for example, when system A is HWP enabled in BIOS, it's autonomous mode default is enabled, when it exports its power plan to a system B, which is not HWP cable and autonomous mode default is disabled, the power plan will have autonomous mode disabled. .pow file don't use all the exact values you see on screen.
     
  2. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    3,165
    Likes Received:
    403
    GPU:
    ASUS TUF 3060ti
    So its using only what a user changes, sounds like it then reads from HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes if that is so.
     
  3. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    Right, only user changed settings are actually imported, other settings read default values that are already on the imported system.
     
  4. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    3,165
    Likes Received:
    403
    GPU:
    ASUS TUF 3060ti
    I guess from MS point of view, that probably is the safest way.
     

  5. vvv1

    vvv1 New Member

    Messages:
    1
    Likes Received:
    0
    GPU:
    -
    @mbk1969

    What was setting between minimum and maximum processor state that was used in bitsum powerplan?

    I dont see it anymore, is it because I had an older cpu back then? Now I see many settings but not that one
     
    Last edited: Apr 14, 2024
  6. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    I have no clue. Sorry...
     
  7. EdKiefer

    EdKiefer Ancient Guru

    Messages:
    3,165
    Likes Received:
    403
    GPU:
    ASUS TUF 3060ti
    Not sure what you mean, Bitsum plan is based on a Windows HP plan (actually ultimate performance plan) so the processor state min/max are 100%, you should see those in PowerSettingExplorer utility.It also has core parking disabled and a few other powersaving settings disabled.
     
  8. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    https://bitsum.com/known-windows-power-guids/
     
  9. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    Did some test on QoS of processor power management, the entrylevelperf for unfocused visible window/medium QoS doesn't seem to work on Windows 10, background QoS might be the most useful one out of all those power profiles&QoS levels.
     
  10. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    @mbk1969
    Is there any way to trace whether current workload condition meets power setting thresholds?
     

  11. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    perfmon?
     
  12. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    xperf, Windows Performance Recorder, Media eXperience Analyzer ?
     
  13. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
  14. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    Good luck in finding documentation on how to use that.

    ***

    You can experiment with ETW providers. Like "Microsoft-Windows-Kernel-Processor-Power" one (you can query providers with command "logman query providers").

    Execute command "wevtutil gp Microsoft-Windows-Kernel-Processor-Power /ge /gm" to view information about it:

    - tasks:
    Code:
       IdleStatesError
       PerfStatesError
       ThrottleStatesError
       Summary
       IdleStatesErrata
       PerfStatesErrata
       LongCapInfo
       QuickCapInfo
       DomainPerfStateChange
       ProcessorPerfStateChange
       PerfCheck
       RecordedUtility
       ExpectedUtility
       ParkCore
       UnparkCore
       IdleAccountingRundown
       ProcessorFirmwareRundown
       CStateDomainFirmwareRundown
       PTStateDomainFirmwareRundown
       ThrottleStatesErrata
       PccSummary
       PccErrata
       PccError
       NotifyPStates
       NotifyCStates
       NotifyTStates
       PerfStatesRundown
       BiosPStatesRundown
       BiosCStatesRundown
       BiosTStatesRundown
       PccCapChange
       BiosCapChange
       ThermalCapChange
       LogicalProcessorIdlingCorePark
       LogicalProcessorIdlingRundown
       LatencySensitivityHint
       ParkNodeRecordedStats
       CpcError
       PepGetIdleStates
       PepQueryCapabilities
       PepPerfConstraintChange
       PepPerfCapabilities
       ProcessorPerformanceRundown
       ParkNodeRundown
       ParkNodeCapChange
       Summary2
       ProcessorIdleRundown
       ProcessorIdRundown
       PepGetPlatformIdleStates
       PlatformIdleAccountingRundown
       PlatformParkingPreference
       LowPowerScenarioChange
       LowPowerScenarioRundown
       LowPowerScenarioInformationRundown
       PepGetIdleStatesV2
       PepGetIdleStatesV2Rundown
       PepGetPlatformIdleState
       PepGetPlatformIdleStateRundown
       DripsAccountingSnapshot
       PlatformAccountingBucketIntervalsRundown
       PlatformIdleVetoIncrement
       PlatformIdleVetoDecrement
       ProcessorIdleVetoIncrement
       ProcessorIdleVetoDecrement
       PlatformIdleVetoRundown
       ProcessorIdleVetoRundown
       StaticPolicyRundown
       PerfSelectProcessorState
       VetoNameRundown
       PepGetCoordinatedIdleStates
       PepGetCoordinatedIdleStatesRundown
       PepGetCoordinatedDependency
       PepGetCoordinatedDependencyRundown
       MediaBufferingNotify
       ComputeEnergy
       CoordinatedIdleRundown
       HeteroResponse
       HeteroDistributeUtility
       ProfileRegistered
       ProfileRundown
       ProfileChange
       ProfileSettingChange
       ProfileSettingRundown
       ProfileStatusRundown
       ProfileEnabled
       ProfileDisabled
       IdleDurationExpiration
       DeliveredPerfChange
       ParkSelection
       ProcessorEnergyCounter
       PackageEnergyCounter
       ProcessorPreVetoAccountingRundown
       PlatformPreVetoAccountingRundown
       NotifyCpcHighest
       ProcessorClassUpdate
       HeterogeneousPoliciesChanged
       HeterogeneousPoliciesRundown
       AutonomousModeChange
       ProcessorLpiStatesRundown
       ProcessorContainerLpiStatesRundown
       VirtualHeterogeneityRundown
       VirtualHeterogeneitySupportChanged
       QosSupportRundown
       QosSupportChanged
       PepPerfDomainInfo
       PepPerfDomainInfoRundown
       HgsUpdate
       ParkNodeClassRecordedStats
       ParkNodeParkHintChange
       HiddenProcessorPerfRundown
       HiddenProcessorBiosCapChange
       HiddenProcessorThermalCapChange
       PerfStatesDegraded
       SoftParkSelection
       SoftParkStateChange
       RecordedUtilityHv
       PerfSelectProcessorStateHv
       DeliveredPerfChangeHv
       ExpectedUtilityHv
       AutonomousModeChangeHv
       ProcessorPerfStateChangeHv
       BiosCapChangeHv
       ThermalCapChangeHv
       ProcessorPerformanceRundownHv
       PerfDomainRundown
       Summary2Hv
       SummaryHv
       QuickCapInfoHv
       LongCapInfoHv
       ProcessorFirmwareRundownHv
       PerfStatesRundownHv
       BiosPStatesRundownHv
       BiosCStatesRundownHv
       BiosTStatesRundownHv
       IdleStatesErrorHv
       PerfStatesErrorHv
       ThrottleStatesErrorHv
       PccErrorHv
       CpcErrorHv
       NotifyPStatesHv
       NotifyCStatesHv
       NotifyTStatesHv
       NotifyCpcHighestHv
       PccCapChangeHv
       ProcessorLpiStatesRundownHv
    
    -
    keywords:
    Code:
         Perf
         Diag
         PowerDiagnostics
         Lpi
         SleepStudy
         Algorithm
         Profiles
         PerfDiag
         EnergyEstimation
    
    Try to launch the ETW trace session:

    Code:
    logman create trace ProcessorPower -p Microsoft-Windows-Kernel-Processor-Power -ets -o c:\temp\processorpower.etl
    then do what actions you want to test.
    Then stop the session

    Code:
    logman stop ProcessorPower -ets
    Then change the folder to c:\temp

    Code:
    cd c:\temp
    and create reports

    Code:
    tracerpt "processorpower.etl" -o -report -summary -lr
    Then open created file "dumpfile.xml" in notepad++...

    PS Example of events from that "dumpfile.xml":
    Code:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>...</System>
        <EventData>
            <Data Name="Group">0</Data>
            <Data Name="Affinity">0xFFF</Data>
            <Data Name="ConcurrentCores">4</Data>
            <Data Name="HistogramSize">      13</Data>
            <Data Name="ConcurrencyHistogram">103154422081</Data>
            <Data Name="ConcurrencyHistogram">35747450798</Data>
            <Data Name="ConcurrencyHistogram">10390620337</Data>
            <Data Name="ConcurrencyHistogram">4572279436</Data>
            <Data Name="ConcurrencyHistogram">2274363091</Data>
            <Data Name="ConcurrencyHistogram">1283289890</Data>
            <Data Name="ConcurrencyHistogram">1005175527</Data>
            <Data Name="ConcurrencyHistogram">417972470</Data>
            <Data Name="ConcurrencyHistogram">393562321</Data>
            <Data Name="ConcurrencyHistogram">222227769</Data>
            <Data Name="ConcurrencyHistogram">140784658</Data>
            <Data Name="ConcurrencyHistogram">110026939</Data>
            <Data Name="ConcurrencyHistogram">478257026</Data>
            <Data Name="DistributeCores">2</Data>
        </EventData>
        <RenderingInfo Culture="ru-RU">
            <Level>Verbose </Level>
            <Opcode>Info </Opcode>
            <Keywords>
                <Keyword>Diag</Keyword>
            </Keywords>
            <Task>ParkNodeRecordedStats</Task>
            <Provider>Microsoft-Windows-Kernel-Processor-Power </Provider>
        </RenderingInfo>
    </Event>
    
    Code:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>...</System>
        <EventData>
            <Data Name="PpmCheckTime">160151864775</Data>
            <Data Name="IdleTime">434478</Data>
            <Data Name="BusyTime">33520</Data>
            <Data Name="Frequency">      33</Data>
            <Data Name="Group">0</Data>
            <Data Name="Number">0</Data>
            <Data Name="DeliveredPerformance">      33</Data>
            <Data Name="Utility">236</Data>
            <Data Name="AffinitizedUtility">217</Data>
            <Data Name="FrequencySensitivity">100</Data>
            <Data Name="BufferingPercent">0</Data>
            <Data Name="StallTime">0</Data>
        </EventData>
        <RenderingInfo Culture="ru-RU">
            <Level>Verbose </Level>
            <Opcode>Info </Opcode>
            <Keywords>
                <Keyword>Diag</Keyword>
            </Keywords>
            <Task>RecordedUtility</Task>
            <Provider>Microsoft-Windows-Kernel-Processor-Power </Provider>
        </RenderingInfo>
    </Event>
    
    
    Code:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>...</System>
        <EventData>
            <Data Name="ProfileId">1</Data>
        </EventData>
        <RenderingInfo Culture="ru-RU">
            <Level>Information </Level>
            <Opcode>Info </Opcode>
            <Keywords>
                <Keyword>Algorithm</Keyword>
                <Keyword>Profiles</Keyword>
            </Keywords>
            <Task>ProfileEnabled</Task>
            <Provider>Microsoft-Windows-Kernel-Processor-Power </Provider>
        </RenderingInfo>
    </Event>
    
    
    Code:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>...</System>
        <EventData>
            <Data Name="State">0x7F002E22</Data>
            <Data Name="Speed">    3504</Data>
            <Data Name="Group">0</Data>
            <Data Name="Number">8</Data>
            <Data Name="Performance">     131</Data>
            <Data Name="TolerancePercent">     100</Data>
            <Data Name="MinPercent">      99</Data>
            <Data Name="MaxPercent">     131</Data>
            <Data Name="EppPercent">      50</Data>
            <Data Name="ActivityWindow">       0</Data>
            <Data Name="Autonomous">true</Data>
            <Data Name="Initiated">true</Data>
            <Data Name="QosClass">       0</Data>
        </EventData>
        <RenderingInfo Culture="ru-RU">
            <Level>Information </Level>
            <Opcode>Info </Opcode>
            <Keywords>
                <Keyword>Perf</Keyword>
            </Keywords>
            <Task>ProcessorPerfStateChange</Task>
            <Provider>Microsoft-Windows-Kernel-Processor-Power </Provider>
        </RenderingInfo>
    </Event>
    
    Code:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>...</System>
        <EventData>
            <Data Name="Group">0</Data>
            <Data Name="Number">4</Data>
            <Data Name="DeliveredPerformance">      40</Data>
            <Data Name="DurationInUs">46853</Data>
            <Data Name="DeliveredFrequency">      40</Data>
        </EventData>
        <RenderingInfo Culture="ru-RU">
            <Level>Information </Level>
            <Opcode>Info </Opcode>
            <Keywords>
                <Keyword>PerfDiag</Keyword>
            </Keywords>
            <Task>DeliveredPerfChange</Task>
            <Provider>Microsoft-Windows-Kernel-Processor-Power </Provider>
        </RenderingInfo>
    </Event>
    
     
    Last edited: Apr 28, 2024
  15. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    Other than the concurrency count, I also find traces on latency sensitivity hints and medium QoS. They do exist but their effects were never observed as described.
     

  16. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    @Donduck

    As I take it
    Code:
            <Data Name="Group">0</Data>
            <Data Name="Number">0</Data>
    
    in events refer to the CPU core - group # core #
     
  17. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    How do you interpret "ConcurrencyHistogram"?
     
  18. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    And I guess
    Code:
           <Data Name="HistogramSize">      13</Data>
           <Data Name="ConcurrencyHistogram">103154422081</Data>
           <Data Name="ConcurrencyHistogram">35747450798</Data>
           <Data Name="ConcurrencyHistogram">10390620337</Data>
           <Data Name="ConcurrencyHistogram">4572279436</Data>
           <Data Name="ConcurrencyHistogram">2274363091</Data>
           <Data Name="ConcurrencyHistogram">1283289890</Data>
           <Data Name="ConcurrencyHistogram">1005175527</Data>
           <Data Name="ConcurrencyHistogram">417972470</Data>
           <Data Name="ConcurrencyHistogram">393562321</Data>
           <Data Name="ConcurrencyHistogram">222227769</Data>
           <Data Name="ConcurrencyHistogram">140784658</Data>
           <Data Name="ConcurrencyHistogram">110026939</Data>
           <Data Name="ConcurrencyHistogram">478257026</Data>
    
    means 1 histogram for the whole CPU plus histogram for each core.

    Probably you can test by summing lower histogram datas and see whether the sum is equal to the highest one.
     
  19. mbk1969

    mbk1969 Ancient Guru

    Messages:
    16,065
    Likes Received:
    13,987
    GPU:
    GF RTX 4070
    @Donduck

    If you open created etl-file in Windows Performance Analyzer you will see "Core Parking Concurrency" section/data

    [​IMG]

    Upd.:

    I guess the column "Weighted Avg" on the right side of details shows the busy cores at each moment (one line).
     
    Last edited: Apr 28, 2024
  20. Donduck

    Donduck Master Guru

    Messages:
    384
    Likes Received:
    27
    GPU:
    Radeon RX Vega 7
    Definition of concurrency count:
     

Share This Page