Processor power policy on Windows

Information on this page applies to Windows 7 and ealier versions of the Windows operating system. For information about processor power management on Windows 10, see Configure processor power management options.

Windows 7 and Windows Server 2008 R2 include a rich set of power policy settings that can influence and control the Windows kernel power manager algorithms for choosing target Processor Power Management (PPM) states. This topic describes these PPM policy settings and their effect on Windows kernel power manager behavior and use of PPM features.

This information applies to the following operating systems:

  • Windows Server 2008 R2
  • Windows 7

These power policy settings are not intended to be changed by users and are not exposed in the Control Panel Power Options application. Although most systems do not require adjustment to these settings, they are provided to let system manufacturers and system administrators optimize the Windows PPM behavior.

For example, PPM policy settings can be used to do the following:

  • Adapt Windows kernel power manager use of PPM controls to the specific PPM features and characteristics of processors from different manufacturers.
  • Account for the differences in PPM implementations or its intended application across various system roles or target workloads.
  • Fine-tune Windows kernel power manager use of PPM features to account for specific system implementations, such as chipsets, system devices, and interconnects.
  • Enable OEMs to offer power policies that are tuned for their specific systems and customer or market segment needs.

Usage guidelines

Most Windows 7 systems do not require changes to the PPM policy settings. However, systems that have unique processor and chipset combinations or systems that include devices that have compatibility issues with the default PPM policies might require changes to some of the PPM policy settings.

These policies are intended for static use only in Windows power plans. That is, the policy settings can be set for specific power plans, for use on both AC and DC power, and take effect when the user changes the active Windows power plan or changes the power source from AC power to battery power. Microsoft does not support any use of PPM policies other than for static configuration through Windows power plans.

These policy settings should not be exposed to the user in custom power control software. OEMs are encouraged to refrain from creating such software and should limit the use of these policy settings only to default power plan customization. Changing these policy settings to an incorrect combination of values can negatively impact system energy efficiency, performance, and responsiveness.

Firmware implementation of processor power policy

We have observed systems that control processor performance policy from the system firmware. Specifically, the system firmware can use processor-specific registers to throttle the performance of the system without notifying Windows. Similarly, we have observed systems that constantly limit the maximum processor performance state when the system is running on battery power.

We encourage system manufacturers to leverage Windows power policy to enforce processor performance state limits. Implementing processor policy in the system firmware instead of leveraging Windows power policy can cause performance and responsiveness issues that users might not be able to diagnose. Additionally, some users require maximum system performance when running their computers on battery power and are not aware that the underlying system firmware might be limiting the processor performance. Implementing default processor performance policy by using Windows power policy lets users override the OEM defaults in Power Options in Control Panel. This can help reduce OEM support issues with users who try to obtain maximum performance at the expense of battery life.

Windows 7 power policy store

To use the processor policy settings that are described in this section, it is important to first understand how power policies are defined and stored in Windows 7.

The following fundamental rules apply:

  • Individual power settings for the system or for devices are grouped into power plans. A power plan is a group of power setting values that help achieve a given power mode or overall power preference. The default power plans for Windows 7 are High Performance, Balanced, and Power Saver.
  • Every power setting belongs to a logical subgroup of related settings. Some examples of these subgroups include system sleep settings, display settings, and PPM settings.
  • Each power setting has both an AC and a DC value. The AC value is used when the system is plugged in (running on AC power). The DC value is used with the system is powered by a battery (running on DC power).
  • Every power setting is identified by a unique globally unique identifier (GUID).
  • Changing a power setting simply changes that value in the underlying power policy store. For the updated value to take effect on the system, a power plan that uses the new power setting value must be applied to the system.

The most significant change in Windows 7 compared to Windows Vista in relation to the power settings is that in Windows 7 the PPM policies are all discrete power setting values in the power policy store. In Windows Vista, the processor power settings were grouped into collections of settings such as Performance State settings (ppmperf) or Idle State settings (ppmidle). In Windows 7, each power setting is an individual top-level setting within the PPM settings subgroup.

For example, to change the value of the Processor Performance Time Check Interval setting on Windows Vista, the current time check interval value must first be retrieved by running the PowerCfg tool with the /ppmidle and /decode command-line options. Then, the value for the setting can be updated, re-encoded (by using the /encode command-line option), and applied to the system. However, for Windows 7, the Processor Performance Time Check Interval setting is its own setting in the PPM settings subgroup and its value can be updated directly by running the PowerCfg tool with the /setacvalueindex or /setdcvalueindex command-line option.

For more information about how to use the PowerCfg tool, see Power Policy Configuration and Deployment in Windows.

Processor power policy settings

This section provides details on the processor power policy settings that are available in Windows 7 to influence kernel power manager use of PPM. All the following settings are part of the Processor Power Management Settings (SUB_PROCESSOR) subgroup.

Processor performance policy settings

These policy settings configure the processor performance state (P-state) algorithm. Except for the Processor Performance Minimum Processor State and Processor Performance Maximum Processor State settings, these policy settings should not be changed without consultation from the system processor vendor or manufacturer. Changes to PPM policy settings require extensive validation for power savings and system performance.

Processor Performance Increase Threshold

Description The percentage of processor utilization, in terms of maximum processor utilization, that is required to increase the processor to a higher performance state.
GUID 06cadf0e-64ed-448a-8927-ce7bf90eb35d
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Performance Decrease Threshold

Description The percentage of processor utilization, in terms of maximum processor utilization, that is required to reduce the processor to a lower performance state.
GUID 12a0ab44-fe28-4fa9-b3bd-4b64f44960a6
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Allow Throttle States

Description Specifies that the performance state algorithm can use any ACPI throttle states (T-states) that the system supports.
GUID 3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0Disabled .Throttle states are not used
1EnabledThrottle states can be used. However, the processor throttle state does not change adaptively. When enabled, the Minimum Processor State and Maximum Processor State settings can be used to lock the system processors into a specific processor throttle state.

 

Hidden Yes

 

Processor Performance Decrease Policy

Description Specifies how a target performance state is selected if the current processor utilization is below the value of the Processor Performance Decrease Threshold setting.
GUID 40fbefc7-2e9d-4d25-a185-0cfd8574bac6
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0Ideal A target performance state is selected based on calculating which performance state increases the processor utilization to just above the value of the Processor Performance Decrease Threshold setting.
1SingleThe next lowest performance state (compared to the current performance state) is selected.
2RocketThe lowest performance state is selected.

 

Hidden Yes

 

Processor Performance Increase Policy

Description Specifies how a target performance state is selected if the current processor utilization is above the value of the Processor Performance Increase Threshold setting.
GUID 465e1f50-b610-473a-ab58-00d1077dc418
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0Ideal A target performance state is selected based on calculating which performance state decreases the processor utilization to just below the value of the Processor Performance Increase Threshold setting.
1SingleThe next highest performance state (compared to the current performance state) is selected.
2RocketThe highest performance state is selected.

 

Hidden Yes

 

Processor Performance Time Check Interval

Description Specifies the duration, in milliseconds, between subsequent evaluations of the processor performance state and Core Parking algorithms.
GUID 4d2b0152-7d5c-498b-88e2-34345392a2c5
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 5000
Label Milliseconds (ms)
Hidden Yes

 

Processor Performance History Count

Description Specifies the number of Processor Performance Time Check Intervals over which a processor’s performance history is tracked.
GUID 7d24baa7-0b84-480f-840c-1b0743c00f5f
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 128
Label Time Check Intervals
Hidden Yes

 

Minimum Processor State

Description Specifies the minimum processor performance state. The performance state is specified as a percentage of maximum processor frequency.
GUID 893dee8e-2bef-41e0-89c6-b55d0929964c
PowerCfg Alias PROCTHROTTLEMIN
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden No

 

Maximum Processor State

Description Specifies the maximum processor performance state. The performance state is specified as a percentage of maximum processor frequency.
GUID bc5038f7-23e0-4960-96da-33abaf5935ec
PowerCfg Alias PROCTHROTTLEMAX
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden No

 

Processor Performance Decrease Time

Description Specifies the minimum amount of time that must elapse between subsequent reductions in the processor performance state. The time is specified in units of the number of Processor Performance Time Check Intervals.
GUID d8edeb9b-95cf-4f95-a73c-b061973693c8
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 100
Label Time Check Intervals
Hidden Yes

 

Processor Performance Increase Time

Description Specifies the minimum amount of time that must elapse between subsequent increases in the processor performance state. The time is specified in units of the number of Processor Performance Time Check Intervals.
GUID 984cf492-3bed-4488-a8f9-4286c97bf5aa
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 100
Label Time Check Intervals
Hidden Yes

 

Processor Performance Boost Policy

Description Configures the processor performance boost policy. The behavior of this setting can differ between processor vendors and specific processor models. The processor vendor should be consulted before changing the value of this setting.
GUID 45bcc044-d885-43e2-8605-ee0ec6e96b59
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Core Parking policy settings

These policy settings configure the Core Parking algorithm parameters. These policy settings should not be changed without consultation from the system processor vendor.

Processor Performance Core Parking Increase Threshold

Description The percentage of processor utilization (in terms of maximum processor utilization across all unparked logical processors in the system) that is required to transition additional logical processors from the parked state to the unparked state.
GUID df142941-20f3-4edf-9a4a-9c83d3d717d1
PowerCfg Alias Not applicable
Minimum Value 5
Maximum Value 90
Label Percentage (%)
Hidden Yes

 

Processor Performance Core Parking Decrease Threshold

Description The percentage of processor utilization (in terms of maximum processor utilization across all unparked logical processors in the system) that is required to transition additional logical processors from the unparked state to the parked state.
GUID 68dd2f27-a4ce-4e11-8487-3794e4135dfa
PowerCfg Alias Not applicable
Minimum Value 5
Maximum Value 90
Label Percentage (%)
Hidden Yes

 

Processor Performance Core Parking Overutilization Threshold

Description The percentage of processor utilization (in terms of maximum processor utilization for a single logical processor) above which a given logical processor is determined to be overutilized. An overutilized logical processor is a logical processor that is in the parked state with processor utilization that is greater than the value of this setting. This occurs when the logical processor is running sufficient affinitized work. This setting helps the Core Parking algorithm identify which particular logical processors to transition from the parked state to the unparked state.
GUID 943c8cb6-6f93-4227-ad87-e9a3feec08d1
PowerCfg Alias Not applicable
Minimum Value 5
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Performance Core Parking Increase Policy

Description Specifies the number of logical processors to transition from the parked state to the unparked state when the processor utilization across all unparked logical processors in the system exceeds the value of the Processor Performance Core Parking Increase Threshold setting.
GUID c7be0679-2817-4d69-9d02-519a537ed0c6
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0Ideal As many logical processors as are required to reduce the processor utilization below the value of the Processor Performance Core Parking Increase Threshold setting are transitioned from the parked state to the unparked state.
1SingleA single logical processor is transitioned from the parked state to the unparked state. On the next evaluation of the Core Parking algorithm, if the processor utilization is still greater than the value of the Processor Performance Core Parking Increase Threshold setting, another single logical processor is transitioned from the parked state to the unparked state.
2All (Rocket)All logical processors that are in the parked state are transitioned to the unparked state. Note that the value of the Processor Performance Core Parking Maximum Cores setting can limit the number of logical processors that can be in the unparked state at the same time.

 

Hidden Yes

 

Processor Performance Core Parking Decrease Policy

Description Specifies the number of logical processors to transition from the unparked state to the parked state when the processor utilization across all unparked logical processors in the system is below the value of the Processor Performance Core Parking Decrease Threshold setting.
GUID 71021b41-c749-4d21-be74-a00f335d582b
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0Ideal As many logical processors as are required to increase the processor utilization above the value of the Processor Performance Core Parking Decrease Threshold setting are transitioned from the unparked state to the parked state.
1SingleA single processor is transitioned from the unparked state to the parked state. On the next evaluation of the Core Parking algorithm, if the processor utilization is still less than the value of the Processor Performance Core Parking Decrease Threshold setting, another single processor is transitioned from the unparked state to the parked state.
2All (Rocket)All processor cores that are in the unparked state that can be parked are transitioned to the parked state. Note that at least one logical processor per node always remains in the unparked state. Note that the value of the Processor Performance Core Parking Minimum Cores setting can increase the number of logical processors that always remain in the unparked state.

 

Hidden Yes

 

Processor Performance Core Parking Max Cores

Description The maximum percentage of logical processors (in terms of all logical processors that are enabled on the system) that can be in the unparked state at any given time. For example, on a system with 16 logical processors, configuring the value of this setting to 50% ensures that no more than 8 logical processors are ever in the unparked state at the same time. The Core Parking algorithm is disabled if the value of this setting is not greater than the value of the Processor Performance Core Parking Minimum Cores setting.
GUID ea062031-0e34-4ff1-9b6d-eb1059334028
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Performance Core Parking Min Cores

Description The minimum percentage of logical processors (in terms of all logical processors that are enabled on the system) that can be placed in the unparked state at any given time. For example, on a system with 16 logical processors, configuring the value of this setting to 25% ensures that at least 4 logical processors are always in the unparked state. The Core Parking algorithm is disabled if the value of this setting is not less than the value of the Processor Performance Core Parking Maximum Cores setting.
GUID 0cc5b647-c1df-4637-891a-dec35c318583
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Performance Core Parking Increase Time

Description Specifies the minimum amount of time that must elapse before additional logical processors can be transitioned from the parked state to the unparked state. The time is specified in units of the number of Processor Performance Time Check Intervals.
GUID 2ddd5a84-5a71-437e-912a-db0b8c788732
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 100
Label Time Check Intervals
Hidden Yes

 

Processor Performance Core Parking Decrease Time

Description Specifies the minimum amount of time that must elapse before additional logical processors can be transitioned from the unparked state to the parked state. The time is specified in units of the number of Processor Performance Time Check Intervals.
GUID dfd10d17-d5eb-45dd-877a-9a34ddd15c82
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 100
Label Time Check Intervals
Hidden Yes

 

The Windows kernel scheduler notifies the Core Parking algorithm when affinitized threads are run on logical processors that are currently in the parked state. This helps the Core Parking algorithm select the logical processors that have recently been scheduled affinitized work to transition from the parked state to the unparked state. The following policy settings configure the Core Parking algorithm for maintaining and tracking instances of affinitized work that have been scheduled to parked logical processors.

Processor Performance Core Parking Affinity History Decrease Factor

Description Specifies the factor by which to decrease the affinity history for each logical processor. The rate is specified in units of the number of Processor Performance Time Check Intervals.
GUID 8f7b45e3-c393-480a-878c-f67ac3d07082
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 10
Label None (discrete units)
Hidden Yes

 

Processor Performance Core Parking Affinity History Threshold

Description Specifies the affinity history value above which a logical processor is considered to have recently been scheduled significant affinitized work.
GUID 5b33697b-e89d-4d38-aa46-9e7dfb7cd2f9
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 1000
Label None (discrete units)
Hidden Yes

 

Processor Performance Core Parking Affinity Weighting

Description Specifies the weighting that is given to each occurrence of affinitized work that is scheduled to a logical processor.
GUID e70867f1-fa2f-4f4e-aea1-4d8a0ba23b20
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 1000
Label None (discrete units)
Hidden Yes

 

The Core Parking algorithm tracks logical processors that are overutilized. An overutilized logical processor is a logical processor that is in the parked state that had processor utilization during the last processor performance time check interval that is greater than the value of the Processor Performance Core Parking Overutilization Threshold setting. This helps the Core Parking algorithm select the particular parked logical processors that have recently been scheduled significant amounts of work to transition to the unparked state.

Processor Performance Core Parking Overutilization History Decrease Factor

Description Specifies the factor by which to decrease the overutilization history for each logical processor. The rate is specified in units of the number of Processor Performance Time Check Intervals.
GUID 1299023c-bc28-4f0a-81ec-d3295a8d815d
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 10
Label None (discrete units)
Hidden Yes

 

Processor Performance Core Parking Overutilization History Threshold

Description Specifies the overutilization history value above which a logical processor is considered to have recently been overutilized.
GUID 9ac18e92-aa3c-4e27-b307-01ae37307129
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 1000
Label None (discrete units)
Hidden Yes

 

Processor Performance Core Parking Overutilization Weighting

Description Specifies the weighting that is given to each occurrence where a logical processor that is in the parked state is determined to be overutilized.
GUID 8809c2d8-b155-42d4-bcda-0d345651b1db
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 1000
Label None (discrete units)
Hidden Yes

 

Processor Performance Core Parking Core Override

Description Specifies that at least one logical processor per processor core must always remain in the unparked state regardless of the values of the Processor Performance Core Parking Maximum Cores and Processor Performance Core Parking Minimum Cores settings.
GUID a55612aa-f624-42c6-a443-7397d064c04f
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0DisabledAllow all logical processors in a processor core to be parked.
1EnabledRequire at least one logical processor per processor core to remain unparked.

 

Hidden Yes

 

Processor Performance Core Parking Parked Performance State

Description Specifies the performance state (P-state) for a logical processor that is transitioned from the unparked state to the parked state.
GUID 447235c7-6a8d-4cc0-8e24-9eaf70b96e2b
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0No PreferenceThe current performance state for the logical processor is maintained.
1Lowest Performance StateThe logical processor will be put into the lowest supported (Pmax) performance state.
2Highest Performance StateThe logical processor will be put into the highest supported (P0) performance state.

 

Hidden Yes

 

Note that if a logical processor is a member of a processor performance state domain that includes other logical processors, the actual performance state of the logical processor is set to the highest performance state of all logical processors in the processor performance state domain.

Processor idle policy settings

These policy settings configure the processor idle state (C-state) algorithm. These policy settings should not be changed without consultation from the system processor and chipset vendor.

Processor Idle Time Check

Description Specifies the duration, in microseconds, between subsequent evaluations of the processor idle state algorithm.
GUID c4581c31-89ab-4597-8e2b-9c9cab440e6b
PowerCfg Alias Not applicable
Minimum Value 1
Maximum Value 200000
Label Microseconds (us)
Hidden Yes

 

Processor Idle Demote Threshold

Description The amount of processor idleness that is required before a processor is set to the next higher power processor idle state. When the processor idleness goes below the value of this setting, the processor transitions to the next lower numbered C-state.
GUID 4b92d758-5a24-4851-a470-815d78aee119
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Idle Promote Threshold

Description The amount of processor idleness that is required before a processor is set to the next lower power processor idle state. When the processor idleness goes above the value of this setting, the processor transitions to the next higher numbered C-state.
GUID 7b224883-b3cc-4d79-819f-8374152cbe7c
PowerCfg Alias Not applicable
Minimum Value 0
Maximum Value 100
Label Percentage (%)
Hidden Yes

 

Processor Idle Disable

Description Specifies if processor idle states are disabled on the system. Note that disabling the processor idle states on a system has severe negative energy efficiency and thermal consequences and should be done only in consultation with the system or processor vendor.
GUID 5d76a2ca-e8c0-402f-a133-2158492d58ad
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0EnabledProcessor idle states are enabled.
1DisabledProcessor idle states are disabled.

 

Hidden Yes

 

Processor Idle Threshold Scaling

Description Specifies if the processor idleness is scaled to the current processor performance state when calculating a target processor idle state.
GUID 6c2993b0-8f48-481f-bcc6-00dd2742aa06
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0DisabledIdle threshold scaling is disabled.
1EnabledIdle threshold scaling is enabled.

 

Hidden Yes

 

System cooling policy setting

This policy setting configures how Windows responds to high thermal conditions on systems that support active cooling features, such as fans.

System Cooling Policy

Description Configures Windows thermal behavior on systems that support active cooling features.
GUID 94d3a615-a899-4ac5-ae2b-e4d8f634367f
PowerCfg Alias Not applicable
Possible Values
IndexNameDescription
0PassiveThe system reduces the processor performance before it enables active cooling features such as fans.
1ActiveThe system enables active cooling features such as fans before it reduces the processor performance.

 

Hidden Yes

 

Processor Power Management in Windows 7 and Windows Server 2008 R2

 

 

Send comments about this topic to Microsoft