Collapse the table of content
Expand the table of content

Processor power policy on Windows

Updated: October 19, 2012

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

DescriptionThe percentage of processor utilization, in terms of maximum processor utilization, that is required to increase the processor to a higher performance state.
GUID06cadf0e-64ed-448a-8927-ce7bf90eb35d
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Processor Performance Decrease Threshold

DescriptionThe percentage of processor utilization, in terms of maximum processor utilization, that is required to reduce the processor to a lower performance state.
GUID12a0ab44-fe28-4fa9-b3bd-4b64f44960a6
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Allow Throttle States

DescriptionSpecifies that the performance state algorithm can use any ACPI throttle states (T-states) that the system supports.
GUID3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb
PowerCfg AliasNot 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.

 

HiddenYes

 

Processor Performance Decrease Policy

DescriptionSpecifies how a target performance state is selected if the current processor utilization is below the value of the Processor Performance Decrease Threshold setting.
GUID40fbefc7-2e9d-4d25-a185-0cfd8574bac6
PowerCfg AliasNot 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.

 

HiddenYes

 

Processor Performance Increase Policy

DescriptionSpecifies how a target performance state is selected if the current processor utilization is above the value of the Processor Performance Increase Threshold setting.
GUID465e1f50-b610-473a-ab58-00d1077dc418
PowerCfg AliasNot 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.

 

HiddenYes

 

Processor Performance Time Check Interval

DescriptionSpecifies the duration, in milliseconds, between subsequent evaluations of the processor performance state and Core Parking algorithms.
GUID4d2b0152-7d5c-498b-88e2-34345392a2c5
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value5000
LabelMilliseconds (ms)
HiddenYes

 

Processor Performance History Count

DescriptionSpecifies the number of Processor Performance Time Check Intervals over which a processor’s performance history is tracked.
GUID7d24baa7-0b84-480f-840c-1b0743c00f5f
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value128
LabelTime Check Intervals
HiddenYes

 

Minimum Processor State

DescriptionSpecifies the minimum processor performance state. The performance state is specified as a percentage of maximum processor frequency.
GUID893dee8e-2bef-41e0-89c6-b55d0929964c
PowerCfg AliasPROCTHROTTLEMIN
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenNo

 

Maximum Processor State

DescriptionSpecifies the maximum processor performance state. The performance state is specified as a percentage of maximum processor frequency.
GUIDbc5038f7-23e0-4960-96da-33abaf5935ec
PowerCfg AliasPROCTHROTTLEMAX
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenNo

 

Processor Performance Decrease Time

DescriptionSpecifies 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.
GUIDd8edeb9b-95cf-4f95-a73c-b061973693c8
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value100
LabelTime Check Intervals
HiddenYes

 

Processor Performance Increase Time

DescriptionSpecifies 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.
GUID984cf492-3bed-4488-a8f9-4286c97bf5aa
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value100
LabelTime Check Intervals
HiddenYes

 

Processor Performance Boost Policy

DescriptionConfigures 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.
GUID45bcc044-d885-43e2-8605-ee0ec6e96b59
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

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

DescriptionThe 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.
GUIDdf142941-20f3-4edf-9a4a-9c83d3d717d1
PowerCfg AliasNot applicable
Minimum Value5
Maximum Value90
LabelPercentage (%)
HiddenYes

 

Processor Performance Core Parking Decrease Threshold

DescriptionThe 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.
GUID68dd2f27-a4ce-4e11-8487-3794e4135dfa
PowerCfg AliasNot applicable
Minimum Value5
Maximum Value90
LabelPercentage (%)
HiddenYes

 

Processor Performance Core Parking Overutilization Threshold

DescriptionThe 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.
GUID943c8cb6-6f93-4227-ad87-e9a3feec08d1
PowerCfg AliasNot applicable
Minimum Value5
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Processor Performance Core Parking Increase Policy

DescriptionSpecifies 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.
GUIDc7be0679-2817-4d69-9d02-519a537ed0c6
PowerCfg AliasNot 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.

 

HiddenYes

 

Processor Performance Core Parking Decrease Policy

DescriptionSpecifies 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.
GUID71021b41-c749-4d21-be74-a00f335d582b
PowerCfg AliasNot 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.

 

HiddenYes

 

Processor Performance Core Parking Max Cores

DescriptionThe 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.
GUIDea062031-0e34-4ff1-9b6d-eb1059334028
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Processor Performance Core Parking Min Cores

DescriptionThe 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.
GUID0cc5b647-c1df-4637-891a-dec35c318583
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Processor Performance Core Parking Increase Time

DescriptionSpecifies 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.
GUID2ddd5a84-5a71-437e-912a-db0b8c788732
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value100
LabelTime Check Intervals
HiddenYes

 

Processor Performance Core Parking Decrease Time

DescriptionSpecifies 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.
GUIDdfd10d17-d5eb-45dd-877a-9a34ddd15c82
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value100
LabelTime Check Intervals
HiddenYes

 

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

DescriptionSpecifies 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.
GUID8f7b45e3-c393-480a-878c-f67ac3d07082
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value10
LabelNone (discrete units)
HiddenYes

 

Processor Performance Core Parking Affinity History Threshold

DescriptionSpecifies the affinity history value above which a logical processor is considered to have recently been scheduled significant affinitized work.
GUID5b33697b-e89d-4d38-aa46-9e7dfb7cd2f9
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value1000
LabelNone (discrete units)
HiddenYes

 

Processor Performance Core Parking Affinity Weighting

DescriptionSpecifies the weighting that is given to each occurrence of affinitized work that is scheduled to a logical processor.
GUIDe70867f1-fa2f-4f4e-aea1-4d8a0ba23b20
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value1000
LabelNone (discrete units)
HiddenYes

 

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

DescriptionSpecifies 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.
GUID1299023c-bc28-4f0a-81ec-d3295a8d815d
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value10
LabelNone (discrete units)
HiddenYes

 

Processor Performance Core Parking Overutilization History Threshold

DescriptionSpecifies the overutilization history value above which a logical processor is considered to have recently been overutilized.
GUID9ac18e92-aa3c-4e27-b307-01ae37307129
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value1000
LabelNone (discrete units)
HiddenYes

 

Processor Performance Core Parking Overutilization Weighting

DescriptionSpecifies the weighting that is given to each occurrence where a logical processor that is in the parked state is determined to be overutilized.
GUID8809c2d8-b155-42d4-bcda-0d345651b1db
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value1000
LabelNone (discrete units)
HiddenYes

 

Processor Performance Core Parking Core Override

DescriptionSpecifies 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.
GUIDa55612aa-f624-42c6-a443-7397d064c04f
PowerCfg AliasNot 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.

 

HiddenYes

 

Processor Performance Core Parking Parked Performance State

DescriptionSpecifies the performance state (P-state) for a logical processor that is transitioned from the unparked state to the parked state.
GUID447235c7-6a8d-4cc0-8e24-9eaf70b96e2b
PowerCfg AliasNot 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.

 

HiddenYes

 

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

DescriptionSpecifies the duration, in microseconds, between subsequent evaluations of the processor idle state algorithm.
GUIDc4581c31-89ab-4597-8e2b-9c9cab440e6b
PowerCfg AliasNot applicable
Minimum Value1
Maximum Value200000
LabelMicroseconds (us)
HiddenYes

 

Processor Idle Demote Threshold

DescriptionThe 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.
GUID4b92d758-5a24-4851-a470-815d78aee119
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Processor Idle Promote Threshold

DescriptionThe 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.
GUID7b224883-b3cc-4d79-819f-8374152cbe7c
PowerCfg AliasNot applicable
Minimum Value0
Maximum Value100
LabelPercentage (%)
HiddenYes

 

Processor Idle Disable

DescriptionSpecifies 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.
GUID5d76a2ca-e8c0-402f-a133-2158492d58ad
PowerCfg AliasNot applicable
Possible Values
IndexNameDescription
0EnabledProcessor idle states are enabled.
1DisabledProcessor idle states are disabled.

 

HiddenYes

 

Processor Idle Threshold Scaling

DescriptionSpecifies if the processor idleness is scaled to the current processor performance state when calculating a target processor idle state.
GUID6c2993b0-8f48-481f-bcc6-00dd2742aa06
PowerCfg AliasNot applicable
Possible Values
IndexNameDescription
0DisabledIdle threshold scaling is disabled.
1EnabledIdle threshold scaling is enabled.

 

HiddenYes

 

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

DescriptionConfigures Windows thermal behavior on systems that support active cooling features.
GUID94d3a615-a899-4ac5-ae2b-e4d8f634367f
PowerCfg AliasNot 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.

 

HiddenYes

 

Related topics

Processor Power Management in Windows 7 and Windows Server 2008 R2

 

 

Send comments about this topic to Microsoft

Mostrar:
© 2015 Microsoft