ParkControl – Tweak CPU Core Parking and More

ParkControl is free software to display and tweak CPU core parking settings in real-time, among other features.

[64-bit] [32-bit]


Also try Process Lasso with ProBalance!

  • Tame unruly background processes
  • Set persistent CPU affinities and priorities
  • Automate power plans

ParkControl Screenshot

ParkControl Pro

  • Bitsum Highest Performance Mode
    Pre-configured power plan for ultimate performance
  • Bitsum Dynamic Boost
    Automatically switch power plans when your PC enters and leaves the idle state
  • Power Plan change Notifications
    Notifications of when and what process changed your active power plan (image)
ADD TO CART

Entire Home licenses allow installation on up to 5 PCs based in the same home. Lifetime licenses are one-time payments for all future updates.

Introduction to CPU Core Parking

CPU Parking is a low-power sleep state (C6) supported by most modern processors and operating systems. It dynamically disables CPU cores in an effort to conserve power when idle. Unfortunately, this power saving comes at a price: Latency when CPUs need unparked to execute code.

Initially, core parking was controlled entirely by the operating system. The aggressive core parking of Windows led to a great deal of inefficiency during bursting CPU loads. Intel moved core parking control onto the chip in the Skylake generation, and AMD followed, but still the parameters of the Windows power plans are set to aggressively park CPU cores. Even the default ‘High Performance’ power plan is not immune. The new ‘Ultra Performance’ power plan copies what Bitsum did with our own ‘Bitsum Highest Performance’ power plan and finally disables core parking entirely.

ParkControl (and Process Lasso) not only let one more easily configure CPU core parking and frequency scaling, but also allow for dynamic entrance into a higher performance power plan. For instance, with Process Lasso, you can automatically enter ‘Bitsum Highest Performance’ will you start a game, then go back to ‘Balanced’ when you exit.

ParkControl has Dynamic Boost to allow you to set active and idle power plans. Process Lasso has a similar feature with its IdleSaver.

Efficacy

Empirical evidence shows that disabling core parking can make a real difference in system performance. There are many factors that will determine precisely how effective it will be for a given situation. However, generally, Windows is too aggressive in its core parking, resulting in high latency during bursting CPU loads, stemming from the CPU cores needing to be unparked to handle the load. Since bursting CPU loads are the most common type for many workloads, core parking can be a substantial drag on system performance and responsiveness.

How to Restore Defaults

Any changes you make with ParkControl are easily reverted. To restore the default power plan settings:

  1. Click ‘Power Options’ in the ParkControl app
  2. Select the Power Profile you modified
  3. Click ‘Restore default settings for this plan’
  4. Repeat for all modified power plans

Changing Parking Settings Using PowerCfg.exe

You can also change these settings via Window’s Powercfg.exe. You must run this utility with elevated rights, so be sure to open an elevated console window by right-clicking ‘cmd.exe’ and selecting ‘Run as Administrator’.

Note that these commands adjust the currently active power profile. You can adjust specific ones by using their GUID, or switching to them prior to running these commands.

First, backup ALL your Power Settings by creating a dump of everything to a TXT file. It is unlikely you will ever need this, but…

powercfg /qh > powerconfig.txt

To mandate 50% of available cores always remain unparked, run:

powercfg -setacvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 50

To adjust it so that only 25% of available cores remain active at all times, allowing 75% of available cores to be parked, you’d run:

powercfg -setacvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 25

‘0’ <zero> indicates to park as many CPU cores as possible.

To enable maximum use of CPU Parking for the power profile you are currently using:

powercfg -setacvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 0

To disable CPU Parking completely for the power profile you are currently using, you’d want to run:

powercfg -setacvalueindex scheme_current sub_processor 0cc5b647-c1df-4637-891a-dec35c318583 100

All the above configure core parking while the system is plugged into AC power. For DC (battery) power, core parking is usually forced, but to configure it you would instead use ‘-setdcvalueindex’.

APPLY New Settings, NOW!

After changing the power scheme settings for CPU Parking as desired, you then want to make the changes active by running the command:

powercfg -setactive scheme_current

With ParkControl, a reboot is NOT required for these changes to take effect – in contrast to direct registry edits or other core parking software.

After applying tweaks, check the Windows Resource Monitor (resmon.exe) and verify that CPU Parking is indeed as you intend,

How to Show Core Parking Options in Advanced Power Options

This gets tricky because not all settings apply to all models. There is, however, a general ON/OFF switch that DOES apply to all CPU models. Below we’ll present the most commonly used simple ON/OFF core parking switch, and how to show it in the Windows Advanced Power Options without any registry edits!

Windows Power Options

Execute the following commands to hide or un-hide the primary ON/OFF switch for core parking in the power plans.

Show Core Parking Settings:

powercfg -attributes SUB_PROCESSOR 0cc5b647-c1df-4637-891a-dec35c318583 -ATTRIB_HIDE

Hide Core Parking Settings:

powercfg -attributes SUB_PROCESSOR 0cc5b647-c1df-4637-891a-dec35c318583 +ATTRIB_HIDE

Core Parking and Intel Skylake and Above

Due to the inefficiencies of OS managed core parking, Intel took over core parking in Skylake and above. These thus have different core parking settings. The most important may simply be the ON/OFF switch of it’s Autonomous Mode, though there is also an aggressiveness %.

Autonomous Mode turns on/off the CPU’s ‘smart parking’, but does NOT turn off OS managed core parking. To do that, use ParkControl or the usual ways.

Unhide Skylake+ Core Parking Settings without direct registry edits (real-time, no reboot required!):

powercfg -attributes SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4e4450b3-6179-4e91-b8f1-5bb9938f81a1 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa -ATTRIB_HIDE

Re-hide Skylake+ Core Parking Settings without direct registry edits (real-time, no reboot required!):

powercfg -attributes SUB_PROCESSOR 8baa4a8a-14c6-4451-8e8b-14bdbd197537 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 36687f9e-e3a5-4dbf-b1dc-15eb381c6863 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4e4450b3-6179-4e91-b8f1-5bb9938f81a1 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR cfeda3d0-7697-4566-a922-a9086cd49dfa +ATTRIB_HIDE

Importantly, Skylake added an ‘Autonomous’ mode that you turn on or off to disable core parking. Within this is a percentage to adjust it’s aggressiveness.

Windows Power Profile CPU Options for Skylake
Windows Power Profile CPU Options for Skylake+

8baa4a8a-14c6-4451-8e8b-14bdbd197537 – Processor performance autonomous mode (Enable/Disable) Specify whether processors should autonomously determine their target performance state.

36687f9e-e3a5-4dbf-b1dc-15eb381c6863 – Processor energy performance preference policy (Percent) Specify how much processors should favor energy savings over performance when operating in autonomous mode.

cfeda3d0-7697-4566-a922-a9086cd49dfa – Processor autonomous activity window (Microseconds) Specify the time period over which to observe processor utilization when operating in autonomous mode.

4e4450b3-6179-4e91-b8f1-5bb9938f81a1 – Processor duty cycling Specify whether the processor may use duty cycling.

Click here for AnandTech’s excellent article on Skylake.

Click here for all pertinent power GUIDs at this time (Skylake and legacy)

There are also a few other sub-GUIDs that we have yet to fully research. To unhide them in the Advanced Power Options of Windows, use (remember, these may do nothing on your CPU model!):

Execute the following commands to hide or un-hide the primary ON/OFF switch for core parking in the OS:

Show Unresearched Advanced Options

powercfg -attributes SUB_PROCESSOR 06cadf0e-64ed-448a-8927-ce7bf90eb35d -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 12a0ab44-fe28-4fa9-b3bd-4b64f44960a6 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 40fbefc7-2e9d-4d25-a185-0cfd8574bac6 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4b92d758-5a24-4851-a470-815d78aee119 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 7b224883-b3cc-4d79-819f-8374152cbe7c -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 943c8cb6-6f93-4227-ad87-e9a3feec08d1 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 619b7505-003b-4e82-b7a6-4dd29c300971 -ATTRIB_HIDE

Hide Unresearched Advanced Options

powercfg -attributes SUB_PROCESSOR 06cadf0e-64ed-448a-8927-ce7bf90eb35d +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 12a0ab44-fe28-4fa9-b3bd-4b64f44960a6 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 40fbefc7-2e9d-4d25-a185-0cfd8574bac6 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 4b92d758-5a24-4851-a470-815d78aee119 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 7b224883-b3cc-4d79-819f-8374152cbe7c +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 943c8cb6-6f93-4227-ad87-e9a3feec08d1 +ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 619b7505-003b-4e82-b7a6-4dd29c300971 +ATTRIB_HIDE

FAQ

  • I have Process Lasso, do I need ParkControl?

    You do not need it, but you may choose to also have it installed.

    ParkControl offers these additional functions:

    • A real-time system tray icon showing CPU core parking status
    • Easy access to CPU core parking settings
    • Power profile change notifications
  • Is ParkControl Pro included in Process Lasso? Can I run them together?

    Yes, they can be run together just fine. They are designed to. Do you need ParkControl though? Well, you already have ‘Bitsum Highest Performance’ power plan, and it can be automated via ‘Performance Mode’ and other mechanisms. You further have a non-system-tray ParkControl listed in the Tools menu of Process Lasso. The stand-alone distribution of ParkControl is for those who do not want to pay for, or use, a full-blown Process Lasso installation. The only other benefit to ParkControl is a system tray icon that dynamically changes when cores park, and perhaps easier access to quick core parking tweaks.

  • I want to use Dynamic Boost, but my PC keeps going to sleep. How do I fix this?

    When your PC goes Idle, Dynamic Boost switches to ‘Power Saver‘. If you do not want your PC to sleep, you need to change that setting for the Power Saver power plan. To do this, open ‘Power Options‘, find ‘Power Saver‘, and edit it. You can also switch to it, then change the sleep settings in their separate config area in Windows.

  • Will disabling CPU core parking and frequency scaling improve performance?

    CPU core parking and frequency scaling can have a dramatic impact on real-time performance of bursting loads like audio/video, gaming, VOIP, and more. That is a big reason we have made such a ‘fuss’ over them. It was nice to be ‘vindicated’ by Intel, who has moved core parking control to the hardware in new CPU generations because the OS’s management was so sub-optimal. As long as they retain the ability to disable core parking, and I’m sure they will, it should be a good change. Microsoft seemed to focus entirely on battery life in recent years, leaving performance to suffer, particularly for desktop users.

  • Should I manually edit the registry instead?

    No, direct registry edits are not advisable. ParkControl makes these changes the correct way. The storage of the settings is backed in the registry, but why would you go hacking around in there when you can make these changes the right way and not risk damage? ParkControl’s changes to the system power plans are persistent, they don’t go away.

  • When I click Apply, I receive 'Error: The core parking settings could not be applied.' How do I fix this?

    Is this a Dell? If so, find Dell Power Manager and change it to something other than ‘Balanced’. If it isn’t a Dell, some other OEM software could be similarly to blame.

    For other systems, you may need to escape the Balanced power mode. Go to the Windows Power Options and select ‘Create a new power plan’ to finish creation of a new power plan. Afterwards, restart ParkControl and it may now have the capability to modify the settings.

  • My CPU cores won’t park! What is wrong?

    First, if you never saw your CPU cores park, then it may be that your system just doesn’t support core parking. If you have seen your cores park in the past, but aren’t seeing parking activity, double check with the Task Manager or Resource Monitor (resmon.exe) to make sure it is not just a display error in the ParkControl GUI.

  • Do ParkControl's changes persist?

    ParkControl changes settings of the Windows power plans based on your selections. These changes persist even if ParkControl is not running or uninstalled. For system defined power plans, you can reset to defaults in the Windows Power Options (linked to from the ParkControl GUI).

  • I only have a 'Balanced' power plan. How can I get Bitsum Highest Performance?

    Is your system a laptop? Some devices only have a ‘Balanced’ power plan, supporting Power Modes instead of Power Plans.

    To resolve, follow this guidance: https://bitsum.com/power/only-balanced/

    After manually creating an alternate power profile, ParkControl should be able to install Bitsum Highest Performance. You can use the ‘Remove/Install’ link beside it on the main window, or reinstall ParkControl.

  • Need More? Get Process Lasso!

    Real-Time CPU Optimization and Automation

    Process Lasso’s ProBalance technology helps maintain system responsiveness in the face of high loads. Background processes are kept in check and lags are reduced.

    ParkControl Revision History

    v2.2.2.2 – May 5, 2022
    (1) If system performance counters appear damaged, ask user then attempt repair with "lodctr.exe /R", et. al
    (1) Don't treat error getting core parking status (broken performance counter) as parked
    
    v2.2.1.4 – Apr 14, 2022
    (1) Fix tray icon could be missing when app started at login
    (1) Maintenance to web interface code (updater, activator)
    
    v2.2.0.8 – March 10, 2022
    (3) Add 'Restore Defaults' syslink control, shown when a stock power profile is selected
    (3) Change 'Show Advanced' button text to 'Hide Advanced', instead of using pushed state to indicate status
    (3) Fix an issue with advanced controls
    
    v2.1.0.32 – March 1, 2022
    (1) Add registry option to specify update check interval (HKLM UpdateCheckIntervalSeconds), or 0 to disable
    (1) Make update check when app window opened instantaneous
    (3) When setting toggled to 'enabled', get system default value for power plan, if it exists and doesn't conflict with enabled or disabled directive
    (7) Delay background update check at app startup for 60 seconds
    (11) Better consolidate version info for build
    (13) Various minor fixes and enhancements
    (13) Improve rate limiting of power profile change notifications
    (15) Improvements to event log consumption code
    (17) Add 'Show Advanced' button to toggle visibility of integers and sliders
    (25) Improvements to power profile change notification code
    (31) Minor cosmetic
    (31) Improve control tab ordering