Core Parking - Processor Power Management in Windows 7 and Windows Server 2008 R2

Core Parking
Core Parking is a new Windows kernel power manager and kernel scheduler technology that helps improve the energy efficiency of a system by dynamically scaling the number of logical processors that are in use based on workload. Similar to how processor performance states help scale the performance of a single processor, Core Parking is designed to help scale the performance and energy efficiency across the set of logical processors in the system. When the Core Parking algorithm reduces the number of logical processors that are in use, it parks some of the logical processors in the system. The kernel scheduler correspondingly gives preference to unparked logical processors rather than parked logical processors when it schedules any non-affinitized threads. This lets the parked logical processors become idle, which in turn lets the corresponding processor cores transition into a lower power idle state.
Core Parking is most effective on systems that have processor idle states with extremely low power consumption. When combined with ITTD, Core Parking helps reduce the amount of interrupt activity on systems that run Hyper-V. On systems with processors that include Intel Hyper-Threading Technology, Core Parking is also leveraged to help intelligently schedule work between threads that are running on multiple logical processors in the same processor core.
We have engaged with leading processor vendors to tune the Core Parking policy defaults. System manufacturers are encouraged to change the Core Parking policy parameters only with detailed consultation from the system processor vendor.
Core Parking is supported only on Windows Server 2008 R2. However, the Core Parking algorithm and infrastructure is also used to balance processor performance between logical processors on Windows 7 client systems with processors that include Intel Hyper-Threading Technology.
Processor Clocking Control
Processor Clocking Control (PCC) is a new feature for Windows Server 2008 R2 where the operating system and the underlying platform hardware cooperatively manage PPM. With PCC, Windows continues to direct the processor performance according to the system workload and communicates the ideal amount of processor performance to another hardware entity in the system through a firmware-described interface.
Typically, systems that use PCC are server platforms that have a separate management controller that is responsible for directing processor performance and power consumption. This controller is ultimately responsible for transitioning the processor to the specific performance state or throttle state that provides the requested level of processor performance. PCC allows the system manufacturer to innovate in related power management features because the underlying hardware platform can be made aware of specific operating system processor performance requirements.
When PCC is enabled, Windows is not in direct control of the processor’s performance state, but instead communicates its performance state preference to the underlying platform hardware. Typically, the platform should provide at least the requested amount of processor performance for the given interval. However, if the system is running under a power consumption budget, thermal condition, or other extraneous condition, the platform can temporarily violate the agreement and provide reduced performance. In this situation, the platform must notify Windows about the reduction in performance. The ability of the underlying platform hardware to notify Windows about power budgets, thermal conditions, or other extraneous conditions is a key benefit of PCC. It lets Windows adjust the processor performance algorithm and notify the administrator or user that the system processor performance is currently reduced.
PCC is supported only on Windows Server 2008 R2. It is not supported on Windows 7 client systems. PCC requires an out-of-band management device to change the processor performance and throttle states and is designed solely for server systems.
Processor Power Management Validation Tools
Microsoft provides several software tools to help you test and verify system PPM support. These tools allow you to view, change, or record the system’s use of PPM technologies. The following is a list of these tools and their general capabilities:
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.
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.
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.
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 Figure 2.
Frequency
(Average P-State)
Figure 2. Windows Resource Monitor showing performance state usage
|