Processor power management options

The Windows 10 processor power management (PPM) algorithms implement OS-level functionality that allows the OS to efficiently use the available processing resources on a platform by balancing the user's expectations of performance and energy efficiency.

The algorithms have the following characteristics:

  • They scale from big servers to tablet form factors.
  • They are customizable through a statically configurable power policy infrastructure.
  • They are hierarchical and abstracted in a manner that separates platform-agnostic portions of the algorithms from platform-specific portions.

At a high-level, the Windows PPM is made up of the following parts:

  • Core parking engine - Makes global scalability decisions about the workload and determines the optimum set of compute cores to execute with.
  • Performance state engine - Makes per-processor performance scaling decisions.
  • Platform specific controls - Implements the mechanics of state transitions and optionally provides feedback about the effectiveness of OS state decisions and runtime platform constraints.

IHV partners can enable preliminary validation and measurement of the effects of the policy controls on different hardware configurations.

Power profiles

You can use the Windows Provisioning framework to configure the processor power settings described in this section. First, create a provisioning package using Windows Configuration Designer. You will then edit the customizations.xml file contained in the package to include your power settings, which appear under the Common\Power\Policy\Settings\Processor namespace. Use the XML file as one of the inputs to the Windows Configuration Designer command-line interface to generate either a provisioning package that contains the power settings. You can then apply the provisioning package to the image. For information on how to use the Windows Configuration Designer CLI, see Use the Windows Configuration Designer command-line interface.

The processor namespace is divided into three sets of identical power processor configurations called power profiles. The power profiles are used by the power processor engine to adapt the performance and parking algorithm on various system use cases.

Windows 10 supports the following profiles:

  • Default profile is the configuration set that is active most of the time. These settings are indentical to those for the balanced power scheme. This provides for an lternative method to configure the balanced power scheme settings via the windows provisioning framework.
  • LowLatency is the profile that is activated during boot and during app launch time.
  • LowPower is the profile that is activated during the buffering phase of media playback scenarios.
  • GameMode profile is enabled when the ‘Game Mode’ setting toggle is turned on and the user is playing a game. You can use this profile to finetune processor settings for your devices with Game Mode.
  • Mixed Reality is the profile that is activated when a Windows Mixed Reality headset is connected to the system and the user is interacting with a MR application.
  • Constrained is a profile activated by the battery saver feature on Windows 10 for desktop editions (Home, Pro, Enterprise, and Education). This is not available on Windows 10 Mobile.

Each profile supports the following configuration settings:

On systems with processors with heterogeneous architecture, the configuration settings for efficiency class 1 cores use a similar naming convention. Efficiency class is defined in ACPI 6.0 section 5.2.12.14 GICC Structure. For more information, consult the ACPI specification.

The common parameters have the suffix "1" to indicate efficiency class. Hetero-specific parameters have the prefix "Hetero".

Game Mode Profile

The game mode power profile is available as an OEM opt-in feature for laptops starting with the Windows 10 May 2019 Update (19H1) and you’ll have to deploy it via provisioning packages during image creation. See below for an example of a customization xml file that defines processor power management settings for the Game Mode Power Profile and refer to the 'Game Mode Test Instructions' document for further guidance on customization options and deployment. This example sets the minimum processor performance state to 100% thereby biasing the CPU towards performance. For more tuning guidance, please reach out to your silicon vendor.

<?xml version="1.0" encoding="utf-8"?>
<WindowsCustomizatons>  
  <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">  
    <ID>b8aca924-e386-436e-a50e-bdec4d1715a1</ID>  <!-- ID needs to be be unique GUID for the package -->  
    <Name>CustomOEM.Power.Settings.Control</Name>  
    <Version>1.0</Version>  
    <OwnerType>OEM</OwnerType>  
  </PackageConfig>  
  <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">  
    <Customizations>  
      <Common>  
          <Power> 
            <Policy> 
              <Settings> 
                <Processor> 
                  <SchemePersonality> 
                    <Profile SchemeAlias="Balanced"> 
                      <Setting ProfileAlias="GameMode"> 
                        <MinPerformance> 
                          <AcValue>100</AcValue> 
                          <DcValue>100</DcValue> 
                        </MinPerformance> 
                      </Setting> 
                    </Profile> 
                  </SchemePersonality> 
                </Processor> 
              </Settings> 
            </Policy> 
          </Power>  
      </Common>  
    </Customizations>  
  </Settings>  
</WindowsCustomizatons> 

Power Profiles and their Provisioning ProfileAlias

Using the customization XML as an example, you can create a provisioning package for all power profiles by matching the xml tag to their provisioning aliases. See below for list of power profiles and their corresponding aliases.

Note

PPM profiles are tuned by Silicon vendors to optimize power and performance of processors. Please reach out to your silicon vendor for tuning guidance before modifying processor power management settings.

Profile Name Profile Alias

Default

"Default"

LowLatency

"LowLatency"

LowPower

"LowPower"

Constrained

"Constrained"

GameMode

"GameMode"

Mixed Reality

"SustainedPerf"