Processor power management validation tools

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.

Updated: October 19, 2012

Microsoft provides several software tools to help you test and verify system Processor Power Management (PPM) support. These tools allow you to view, change, or record the system’s use of PPM technologies.

This information applies to the following operating systems:

  • Windows Server 2008 R2
  • Windows 7

The following is a list of these tools and their general capabilities:

  • Windows Resource Monitor

    This tool lets you view a quick summary of the processor usage versus the processor speed. This tool is included with Windows.

  • Windows Reliability and Performance Monitor

    This tool lets you view a plot of the current speed of each processor core against the processor usage. It also provides logging and graphical display capabilities. This tool is included with Windows.

  • Event Viewer

    This tool lets you view entries in the system event log. The system event log includes entries that contain summary information about platform PPM capabilities and error messages that were logged when ACPI processor objects failed validation checks. This tool is included with Windows.

  • PowerCfg

    This command-line tool lets you view or change the processor power policy, including power policy values that are not exposed in the Control Panel Power Options application. This tool is included with Windows.

  • Pwrtest

    This command-line tool lets you view detailed information about system PPM capabilities and provides test and logging capabilities for multiple power management scenarios. This tool is included with the Windows Driver Kit (WDK).

The following sections provide examples of how you can use these tools.

Windows Resource Monitor

The Windows Resource Monitor can display a summary view of resource usage in the system, including the overall CPU usage and the use of processor throttling controls such as processor performance states and linear stop clock throttle states. This tool is shown in the following figure.

Windows Resource Monitor showing performance state usage

Windows Reliability and Performance Monitor

The Windows Reliability and Performance Monitor can display both processor performance state and processor idle state usage.

Viewing processor performance state usage

The Windows Reliability and Performance Monitor includes performance counters that can provide a somewhat more detailed view of the processor speed changes that occur in response to changes in power policy or changes in processor utilization. By using these performance counters, you can see the current processor speed for each processor or core in the system.

The following figure shows how to add these performance counters in the Windows Reliability and Performance Monitor.

Adding processor performance counters in the Reliability and Performance Monitor

The following figure shows an example of Windows Reliability and Performance Monitor displaying processor performance state usage.

Windows Reliability and Performance Monitor displaying processor performance state usage

Viewing processor idle state usage

The Windows Reliability and Performance Monitor can also be used to view and log processor idle state (APCI C state) usage. It can be useful to use the histogram view in the Windows Reliability and Performance Monitor to compare the system idleness to the three possible C states on a system.

The following figure shows an example of Windows Reliability and Performance Monitor displaying such a histogram.

Windows Reliability and Performance Monitor displaying processor idle state (C State) usage

Although Windows 7 and Windows Server 2008 R2 use only three discrete C-states, the underlying system can use lower power processor idle states than C3 for the third C-state. System manufacturers that would like to view how much time a system spends in these lower power idle states are encouraged to contact their processor vendor for vendor-specific tools that can be used for this purpose.

Event Viewer

The Windows kernel power manager publishes events to the system event log. At system initialization, the kernel power manager logs an informational event that provides a summary of the processor idle states that the system supports.

The following figure shows an example of such an event when it is viewed with Event Viewer.

System Event Log entry that shows the supported PPM states

The kernel power manager also logs error events if any ACPI processor objects fail validation checks during processor driver initialization that cause any PPM capabilities to be disabled.

The following two figures show two examples of such error events when viewed with Event Viewer.

System Event Log entries that show PPM error events

System Event Log entries that show PPM error events

PowerCfg

The PowerCfg command-line tool can be used to view or change the processor power policy. For information about how to use the PowerCfg tool, see Power Policy Configuration and Deployment in Windows and Using PowerCfg to Evaluate System Energy Efficiency.

Pwrtest

The Pwrtest command-line tool can be used to view the supported PPM states and to view and log processor idle state transitions. The Pwrtest tool is not included with Windows. However, it is included with the WDK.

Viewing supported PPM states

Pwrtest can be used to view a summary of the PPM states that the system supports by specifying the /info:ppm command-line option. The following examples shows the output of Pwrtest when it is run with /info:ppm on a system with an Intel processor.

C:\Program Files\Microsoft PwrTest>pwrtest /info:ppm
PROCESSOR_POWER_INFORMATION
         CPU Number             = 0
         MaxMhz                 = 1833
         CurrentMhz             = 1833
         MhzLimit               = 1833
         MaxIdleState           = 3
         CurrentIdleState       = 3

InstanceName: ACPI\GenuineIntel_-_x86_Family_6_Model_14\_0_0

Processor Performance States
  PerfStates:
    Max Transition Latency:  10 us
    Number of States:        11

    State  Speed (Mhz)    Type
    -----  ------------   ----
      0     1833 (100%)   Performance
      1     1333 ( 72%)   Performance
      2     1000 ( 54%)   Performance
      3     1000 ( 54%)   Throttle
      4      880 ( 48%)   Throttle
      5      750 ( 40%)   Throttle
      6      630 ( 34%)   Throttle
      7      500 ( 27%)   Throttle
      8      380 ( 20%)   Throttle
      9      250 ( 13%)   Throttle
      10     130 (  7%)   Throttle

Viewing and logging processor idle state transitions

Pwrtest can also be used to view and log processor idle state transitions. Pwrtest supports two basic modes of operation for these tests:

  • A sampling mode that summarizes processor idle state usage over the sampling period. For this mode, you specify the /ppm command-line option.
  • An event-driven mode that logs processor idle state transitions as they are initiated by the Windows kernel power manager. For this mode, you specify both the /ppm and the /live command-line options.

The following example is an output of Pwrtest when it is run in sampling mode.

C:\Program Files\Microsoft PwrTest>pwrtest /ppm
      Elapsed  Idle   C1   C2   C3  P-     Freq    Freq     Perf/
Cpu      [ms]   [%]  [%]  [%]  [%]  State   [%]   [MHz]  Throttle
---   -------  ----  ---  ---  ---  -----  ----   -----  --------
  0      5007    98    0   73   26      2    54    1000         P
  1      5007    99    0   93    6      2    54    1000         P
  0     10014    97    0   72   27      2    54    1000         P
  1     10014    97    0   91    8      2    54    1000         P
  0     15021    88    1    0    0      2    54    1000         P
  1     15021    89    1    0    0      2    54    1000         P
  0     20028    99    0    0  100      2    54    1000         P
  1     20028    98    0    0  100      2    54    1000         P
  0     25035    98    0    0  100      2    54    1000         P
  1     25035    98    0    0  100      2    54    1000         P
  0     30042    98    0    0  100      2    54    1000         P
  1     30042   100    0    0  100      2    54    1000         P
  0     35049    98    0    0  100      2    54    1000         P
  1     35049    98    0    0  100      2    54    1000         P
  0     40056    99    0    0  100      2    54    1000         P
  1     40056    97    0    0  100      2    54    1000         P

The following example is an output of Pwrtest when it is run in event-driven mode.

C:\Program Files\Microsoft PwrTest>pwrtest /ppm /live

Waiting for PPM Events. Press 'Ctrl-C' to quit...

Timestamp     Proc#  Event Information
----------------------------------------------------------------------
21:27:17.890  1      Idle State Demotion  (Old:2, New:1, Affinity:0x2)
21:27:17.937  1      Idle State Promotion (Old:1, New:2, Affinity:0x2)
21:27:19.481  0      Idle State Demotion  (Old:2, New:1, Affinity:0x1)
21:27:19.497  1      Idle State Demotion  (Old:2, New:1, Affinity:0x2)
21:27:19.528  0      Idle State Demotion  (Old:1, New:0, Affinity:0x1)
21:27:19.590  0      Idle State Promotion (Old:0, New:1, Affinity:0x1)
21:27:19.606  1      Idle State Promotion (Old:1, New:2, Affinity:0x2)
21:27:19.637  0      Idle State Promotion (Old:1, New:2, Affinity:0x1)
21:27:38.871  0      Idle State Demotion  (Old:2, New:1, Affinity:0x1)
21:27:38.918  0      Idle State Promotion (Old:1, New:2, Affinity:0x1)
21:27:41.133  0      Idle State Demotion  (Old:2, New:1, Affinity:0x1)
21:27:41.133  1      Idle State Demotion  (Old:2, New:1, Affinity:0x2)
21:27:41.196  1      Perf State Change (State:0, Speed:1833 Mhz)
21:27:41.196  1      Domain Perf State Change
                     (State:0, Speed:1833 Mhz, Affinity:0x3)
21:27:41.196  0      Idle State Demotion  (Old:1, New:0, Affinity:0x1)
21:27:41.242  1      Idle State Promotion (Old:1, New:2, Affinity:0x2)
21:27:41.242  0      Idle State Promotion (Old:0, New:1, Affinity:0x1)
21:27:41.305  0      Perf State Change (State:0, Speed:1833 Mhz)
21:27:41.305  0      Idle State Demotion  (Old:1, New:0, Affinity:0x1)
21:27:41.367  1      Idle State Demotion  (Old:2, New:1, Affinity:0x2)
21:27:41.414  1      Idle State Promotion (Old:1, New:2, Affinity:0x2)
21:27:41.461  0      Idle State Promotion (Old:0, New:1, Affinity:0x1)
21:27:41.493  0      Idle State Demotion  (Old:1, New:0, Affinity:0x1)
21:27:41.546  0      Idle State Promotion (Old:0, New:1, Affinity:0x1)
21:27:41.579  1      Idle State Demotion  (Old:2, New:1, Affinity:0x2)
21:27:41.606  0      Idle State Demotion  (Old:1, New:0, Affinity:0x1)
21:27:41.630  1      Idle State Demotion  (Old:1, New:0, Affinity:0x2)
21:27:41.790  1      Idle State Promotion (Old:0, New:1, Affinity:0x2)
21:27:41.814  0      Idle State Promotion (Old:0, New:1, Affinity:0x1)
21:27:41.890  1      Idle State Promotion (Old:1, New:2, Affinity:0x2)
21:27:41.915  0      Idle State Promotion (Old:1, New:2, Affinity:0x1)
21:27:41.994  1      Perf State Change (State:1, Speed:1333 Mhz)
21:27:41.994  1      Domain Perf State Change
                     (State:1, Speed:1333 Mhz, Affinity:0x3)
21:27:42.126  0      Perf State Change (State:1, Speed:1333 Mhz)
21:27:42.344  1      Perf State Change (State:2, Speed:1000 Mhz)
21:27:42.344  1      Domain Perf State Change

Pwrtest provides several other command-line options that can be used to tailor the sampling rate and information that is logged in these modes. For more information, see the documentation that is included with Pwrtest and the Pwrtest command-line Help.

Related topics

Processor Power Management in Windows 7 and Windows Server 2008 R2

 

 

Send comments about this topic to Microsoft

Show: