Processor Power Policy On Windows - Windows 10 Hardware Dev - Microsoft Docs
Processor Power Policy On Windows - Windows 10 Hardware Dev - Microsoft Docs
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.
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.
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.
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.
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.
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
Minimum 0
Value
Maximum 100
Value
Hidden Yes
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
Minimum 0
Value
Maximum 100
Value
Hidden Yes
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
Possible IndexNameDescription
Values 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
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
Possible IndexNameDescription
Values 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
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
Possible IndexNameDescription
Values
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
Description Specifies the duration, in milliseconds, between subsequent evaluations of the processor performance
state and Core Parking algorithms.
GUID 4d2b0152-7d5c-498b-88e2-34345392a2c5
Minimum 1
Value
Maximum 5000
Value
Hidden Yes
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
Minimum 1
Value
Maximum 128
Value
Label Time Check Intervals
Hidden Yes
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 PROCTHROTTLEMIN
Alias
Minimum 0
Value
Maximum 100
Value
Hidden No
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 PROCTHROTTLEMAX
Alias
Minimum 0
Value
Maximum 100
Value
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
Minimum 1
Value
Maximum 100
Value
Hidden Yes
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
Minimum 1
Value
Maximum 100
Value
Hidden Yes
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
Minimum 0
Value
Maximum 100
Value
Hidden Yes
These policy settings configure the Core Parking algorithm parameters. These policy settings should not be
changed without consultation from the system processor vendor.
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
Minimum 5
Value
Maximum 90
Value
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
Minimum 5
Value
Maximum 90
Value
Hidden Yes
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
Minimum 5
Value
Maximum 100
Value
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
Possible IndexNameDescription
Values 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
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
Possible IndexNameDescription
Values 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
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
Minimum 0
Value
Maximum 100
Value
Hidden Yes
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
Minimum 0
Value
Maximum 100
Value
Hidden Yes
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
Minimum 1
Value
Maximum 100
Value
Hidden Yes
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
Minimum 1
Value
Maximum 100
Value
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.
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
Minimum 1
Value
Maximum 10
Value
Hidden Yes
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
Minimum 1
Value
Maximum 1000
Value
Label None (discrete units)
Hidden Yes
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
Minimum 1
Value
Maximum 1000
Value
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.
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
Minimum 1
Value
Maximum 10
Value
Hidden Yes
Description Specifies the overutilization history value above which a logical processor is considered to have
recently been overutilized.
GUID 9ac18e92-aa3c-4e27-b307-01ae37307129
Minimum 1
Value
Maximum 1000
Value
Hidden Yes
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
Minimum 1
Value
Maximum 1000
Value
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
Possible IndexNameDescription
Values 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
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
Possible IndexNameDescription
Values 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.
Description Specifies the duration, in microseconds, between subsequent evaluations of the processor idle state
algorithm.
GUID c4581c31-89ab-4597-8e2b-9c9cab440e6b
Minimum 1
Value
Maximum 200000
Value
Hidden Yes
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
Minimum 0
Value
Maximum 100
Value
Hidden Yes
GUID 7b224883-b3cc-4d79-819f-8374152cbe7c
Minimum 0
Value
Maximum 100
Value
Hidden Yes
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
Possible IndexNameDescription
Values 0EnabledProcessor idle states are enabled.
1DisabledProcessor idle states are disabled.
Hidden Yes
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
Possible IndexNameDescription
Values 0DisabledIdle threshold scaling is disabled.
1EnabledIdle threshold scaling is enabled.
Hidden Yes
This policy setting configures how Windows responds to high thermal conditions on systems that support
active cooling features, such as fans.
Description Configures Windows thermal behavior on systems that support active cooling features.
GUID 94d3a615-a899-4ac5-ae2b-e4d8f634367f
Possible IndexNameDescription
Values 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
Related topics
Processor Power Management in Windows 7 and Windows Server 2008 R2