0% found this document useful (0 votes)
347 views20 pages

Processor Power Policy On Windows - Windows 10 Hardware Dev - Microsoft Docs

This document discusses processor power policy settings in Windows 7 and earlier versions. It provides information on how these settings influence the Windows kernel power manager's use of Processor Power Management features. The settings control aspects like performance states and idle states. OEMs can customize these settings to optimize power management for specific hardware.

Uploaded by

Kusuma Jaya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
347 views20 pages

Processor Power Policy On Windows - Windows 10 Hardware Dev - Microsoft Docs

This document discusses processor power policy settings in Windows 7 and earlier versions. It provides information on how these settings influence the Windows kernel power manager's use of Processor Power Management features. The settings control aspects like performance states and idle states. OEMs can customize these settings to optimize power management for specific hardware.

Uploaded by

Kusuma Jaya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Processor power policy on Windows

06/01/2017 19 minutes to read


In this article
Usage guidelines
Firmware implementation of processor power policy
Windows 7 power policy store
Processor power policy settings
Related topics

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 Not applicable


Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

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

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 Not applicable


Alias

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

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 Not applicable


Alias

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

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 Not applicable


Alias

Minimum 1
Value

Maximum 5000
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 128
Value
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 PROCTHROTTLEMIN
Alias

Minimum 0
Value

Maximum 100
Value

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 PROCTHROTTLEMAX
Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 5
Value

Maximum 90
Value

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 Not applicable


Alias

Minimum 5
Value

Maximum 90
Value

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 Not applicable


Alias

Minimum 5
Value

Maximum 100
Value

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 Not applicable


Alias

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

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 Not applicable


Alias

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

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 Not applicable


Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 0
Value
Maximum 100
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 100
Value

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 Not applicable


Alias

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.

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 Not applicable


Alias

Minimum 1
Value

Maximum 10
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 1000
Value
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 Not applicable


Alias

Minimum 1
Value

Maximum 1000
Value

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 Not applicable


Alias

Minimum 1
Value
Maximum 10
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 1000
Value

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 Not applicable


Alias

Minimum 1
Value

Maximum 1000
Value

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 Not applicable


Alias

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

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 Not applicable


Alias

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.

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 Not applicable


Alias

Minimum 1
Value

Maximum 200000
Value

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 Not applicable


Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

Minimum 0
Value

Maximum 100
Value

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 Not applicable


Alias

Possible IndexNameDescription
Values 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 Not applicable


Alias

Possible IndexNameDescription
Values 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 Not applicable


Alias

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

Send comments about this topic to Microsoft

You might also like