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 try Process Lasso with ProBalance!

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

ParkControl Screenshot
  • 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
 

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.

  • 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. Why?

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

  • ParkControl Revision History

    • v2.0.0.16 – Add distinct settings for Alder Lake Performance (P) and Efficiency (E) cores (only supported by Win10, not Win11)
    • v2.0.0.16 – Do one-time adjustment of BHP of existing installs on Win10 /w Alder Lake, so that all P cores are unparked
    • v2.0.0.16 – Add beta updates registry backed option and toggle to tray menu (BetaUpdates)
    • v2.0.0.16 – Adjustments to tray menu
    • v2.0.0.16 – Reload settings into dialog after Apply
    • v2.0.0.16 – Add registry backed option to always show efficiency class selection (AlwaysShowEfficiencyClassSelection)
    • v2.0.0.16 – Change ‘Make Active’ syslink control to a button
    • v2.0.0.16 – Adjust ‘wrong edition, download right one?’ message
    • v2.0.0.16 – Fix missing Russian resource module
    • v1.6.0.10 – Refactor /terminate command line action (to close existing ParkControl instances)
    • v1.6.0.10 – Improve ‘save changes?’ on profile selection change
    • v1.6.0.10 – Remove ‘changes applied’ messagebox
    • v1.6.0.10 – Remove auto-start delay
    • v1.6.0.10 – Improve behavior when launched when existing instance already running
    • v1.5.0.12 – Improve minidump creation if crash occurs
    • v1.5.0.10 – Active power profile is no longer changed back to that when the app started, except when Dynamic Boost is enabled
    • v1.5.0.10 – Adjust text control positioning to improve appearance up to 150% font scaling
    • v1.5.0.10 – Fix system tray icon state can be out of sync
    • v1.5.0.10 – Make Get Process Lasso syslink control bold
    • v1.4.0.14 – Fix issue with ‘Show park settings in Windows Power Options’
    • v1.4.0.12 – Fix language selection lost on update in last release
    • v1.4.0.10 – Refactored CPU core graphs
    • v1.4.0.10 – Minor fixes and enhancements
    • v1.4.0.10 – Language updates
    • v1.3.1.8 – Sort power plans alphabetically
    • v1.3.1.8 – Fixes and refactoring
    • v1.3.1.8 – Update Chinese languages (Simplified and Traditional)
    • v1.3.1.4 – Change CPU graph ordering to better adhere to NUMA grouping
    • v1.3.1.2 – Do not allow installation of BHP on power plan locked systems. Advise to use “Performance Mode” slider on the battery icon instead. More info.
    • v1.3.1.2 – Remove licensing restriction on Dynamic Boost (all features now freely available)
    • 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

    Need More? Get Process Lasso!

    Real-Time CPU Optimization and Automation

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