ParkControl – Tweak CPU Core Parking and More

ParkControl is free software to display and tweak CPU core parking settings in real-time. It also has an assortment of complimentary power automation features.

Also check out Process Lasso with ProBalance!

  • Automate power plans (e.g. when an app is run)
  • Tame unruly background processes
  • Set persistent CPU affinities and priorities

Using a Microsoft Surface or other device with only a Balanced power plan? Read this first.

Latest version: 1.3.0.8

ParkControl v1.2.8.0

    • A PRO LICENSE IS NOT REQUIRED. IT SUPPORTS DEVELOPMENT.
    • 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)
  • BEFORE YOU BUY – If you see an error when attempting to apply settings, such as “ERROR: You do not have sufficient permissions”, this means your hardware, OS, or some other condition prohibits ParkControl from operating on your PC. Purchasing a license will NOT resolve this error!
ADD TO CART

Need More?

Get Real-Time Windows Optimization

Process Lasso ProBalance Technology improves PC responsiveness, eliminating micro-lags and. Process Lasso includes the Bitsum Highest Performance Power Plan that disables CPU Core Parking and Frequency Scaling for maximum bursting performance.

CPU Core Parking is a low-power sleep state supported by most modern processors and operating systems. It dynamically disables CPU cores in an effort to conserve power when idle.

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 efficacious it will be for any given system. However, generally, Windows is too aggressive in its core parking, resulting in excess latency during bursting CPU loads (the most common type).

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 cc5b647-c1df-4637-891a-dec35c318583 -ATTRIB_HIDE

Hide Core Parking Settings:

powercfg -attributes SUB_PROCESSOR cc5b647-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 adds 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

ParkControl Revision History

  • v1.3.0.8 – Support Bitsum Highest Performance on Microsoft Surface (and other) devices with locked down power plans
  • v1.3.0.8 – Cleanup registry debris from attempted installations of Bitsum Highest Performance on Microsoft Surface devices
  • v1.3.0.8 – Remove user-induced BHP uninstall marker on user-induced reinstall
  • v1.3.0.8 – Dynamically refresh system tray menu power plans
  • v1.3.0.8 – Improved system tray icon sync
  • v1.3.0.8 – Fix to a potential crash or failed initialization of the main dialog
  • v1.3.0.8 – Cosmetic improvements
  • v1.2.8.8 – Improvements to CPU parking and utilization display for some SMP or HCC systems
  • v1.2.8.4 – Fix a language selection issue
  • v1.2.8.2 – Don’t show power plan change notification if new power plan is same as old
  • v1.2.8.2 – Add Power Plan Change Notifications toggle to main window
  • v1.2.8.2 – Refine Power Plan Change Notification setting default value
  • v1.2.8.0 – Add support for new Ultimate Performance power plan of Windows 10 for Workstations (still recommend use of Bitsum Highest Performance)
  • v1.2.8.0 – Migrate to latest Bitsum CPU core utilization and parking control (graphs)
  • v1.2.8.0 – Re-position some main window controls
  • v1.2.7.6 – Auto-open GUI on manual launch and post-install
  • v1.2.7.2 – Updates to several languages
  • v1.2.7.2 – Improve start at login behavior
  • v1.2.6.8 – Fix issue where Bring-To-Front of an existing open main ParkControl dialog would cause persistence of TOPMOST style until you close the dialog.
  • v1.2.6.8 – Update Russian and Finnish.
  • v1.2.6.6 – Update to latest internal libraries.
  • v1.2.6.4 – Force application to terminate existing instances on relaunch to recover from any lost system tray icon and ensure that the main window always pops up.
  • v1.2.6.2 – Correct version resource block in last build
  • v1.2.6.2 – Fix two quick single clicks (not double) with right timing could cause a hang by causing 2 open windows. Synchronization objects fixed.
  • v1.2.6.0 – Fix missing system tray icon at startup for some users.
  • v1.2.6.0 – Improve product uninstaller (requires reinstall to get new uninstall.exe)
  • v1.2.5.8 – Fix ‘Kaby Lake’ labelled as Skylake and update to latest internal libraries (now all VS2015, no XP support).
  • v1.2.5.6 – Fix last build missing unicode languages
  • v1.2.5.4 – Switch to NSIS 3.01, many installer improvements
  • v1.2.5.4 – Improved check of compatible OS
  • v1.2.5.4 – Improved uninstall to use our new bcleaner.exe tool
  • v1.2.5.4 – Switch to NSIS inetc plugin for downloads, and back to HTTPS – no more failed internal installer downloads.
  • v1.2.5.4 – Reduce size of one-time (‘do not show again’) solicitation dialog
  • v1.2.5.4 – Latest language updates
  • v1.2.5.2 – Start adding new graphics set
  • v1.2.4.8 – Have updater re-check every time dialog is opened
  • v1.2.4.8 – Additional UI adjutments for non-standard displays
  • v1.2.4.8 – Update French
  • v1.2.4.8 – Misc code improvements

FAQ

I have Process Lasso Pro, do I need ParkControl Pro?

I have Process Lasso Pro, do I need ParkControl Pro?

You do not need it, but you may prefer it. It adds to Process Lasso a system tray icon that dynamically changes as core parking does. It also has some automation that is similar, but not quite the same, as Process Lasso’s IdleSaver. Note that if both applications are installed, the menu item to manage core parking in Process Lasso will open the ParkControl app. Importantly, it can run without Process Lasso, which is it’s primary audience. Process Lasso Pro is the ‘big boy toy’ of this class.

In summary, ParkControl offers:

  • A real-time system tray icon to show core parking
  • Easier access to these settings
  • An IdleSaver-type automation with Bitsum Highest Performance Plan

I want to use Dynamic Boost, but my PC keeps going to sleep, and I don't want that. How do I fix this?

1. When your PC goes Idle, Dynamic Boost switches to ‘Power Saver
2. So, if you do not want your PC to sleep, you need to change that setting for the Power Saver power plan.
3. 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.

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 ‘Gaming 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.

Should I manually edit the registry instead?

No, that’d be ridiculous. 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.

I get an error when I try to change settings. Why?

Are you a ‘Limited’ user? Is this PC on a corporate network? Have you done any ‘damage’ by doing manual registry edits? Are you sure your hardware supports core parking? In short, there are lots of variables. I recommend trying some of the powercfg.exe commands we list on this page in an administrative command console.

The core parking settings don't change after I hit Apply ...

That means your CPU or BIOS/UEFI does not support CPU core parking, or it has otherwise been disabled. Now, do also remember that this setting is specific to each power plan, so don’t get those confused and think your changes weren’t saved.

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).

Process Lasso Pro

ProBalance In Action

Further Research

We’ve attempted to dig deeper into the core parking rabbit hole, and let me tell you there are countless additional hidden variables that control it’s behavior. It’s therefore not at all inconceivable that some are not tuned properly. In fact, Microsoft has issued Hotfixes in the past to address this very issue.

I’ll update my findings here as I’m able. If you want to support this project, buy a license for Process Lasso or donate.

Donate via PayPal or CC