Process Lasso Automation Features

Automation

Do you need to:

  • Change power plans when a specific application is running?
  • Persist CPU affinities, priority classes or other process settings?

These are some of the many automation capabilities of Process Lasso! Take control of your PC through your own manual rules, or let Process Lasso’s automated algorithms do it for you.

Wildcards are accepted in most rules, along with Regular Expressions for more complex matching. Read more here.

Process Lasso’s automation capabilities include:

CPU Affinities
Set persistent CPU affinities so that processes run on the desired set of CPUs every time they launch.
CPU Sets
A ‘weaker’ from of CPU Affinities, preferred cores.
Priority Classes
Set persistent CPU, I/O, and memory priorities so that processes run at the desired priorities every time they launch.
Disallowed Processes
Immediately terminate any matched process, by your criteria.
Keep Running
Automatically restart select processes when they terminate.
IdleSaver
Conserve energy when your PC is idle by switching to a more frugal power plan.
Power Plan Automation
Switch power plans while idle (IdleSaver), or when specified process(es) are found running, or by a manual timer (Keep Awake), etc…
Prevent Sleep (Keep Awake)
Process Lasso can prevent your PC from sleeping for a specified amount of time, or when select processes are running.
Disable Hyper-Threading or SMT
Dynamically disable Hyper-Threading or SMT on a per-process basis.
Advanced Watchdog Rules
Create advanced rules to perform a specified action when matched process(es) reach a certain threshold of resource consumption or other criteria.
Multi-select Operations
Perform an operation like terminate on multiple processes at once!
Configuration Profiles
Profiles allows for creation and use of multiple rule configurations.
More…
Process Lasso contains numerous other features and functions. Explore them for yourself!
Process context menu
Process context menu

Priority Classes

  • Menu path: ‘Options / CPU / CPU Priorities …’

Persistent CPU Priority Classes are available to keep applications running at specific priorities.

Note that use of above-normal priority classes is generally ineffectual at improving performance (it won’t make an app go faster). Instead, it is recommended to target problematic background processes with Below Normal and Idle priority classes to limit their impact on performance sensitive applications. This is what ProBalance does automatically.

Priority classes available in Windows are:

  • Real-Time
  • High
  • Above Normal
  • Normal
  • Below Normal
  • Idle

CPU Affinities

  • Menu path: ‘Options / CPU / CPU Affinities …’

CPU Affinities control which CPU cores a process is allowed to use. Its threads will only be scheduled to that set of CPUs. This is useful to limit max CPU consumption of a process, or to optimize which CPU cores are dedicated to specific apps, games or services.

If you want to instead dynamically reduce the set of CPU cores a process has access to, try the CPU Limiter.

User should also sett the CPU Sets feature, a softer form of CPU affinities that also support multiple processor groups.

Multi-group (>64 logical CPU cores) processes have system restrictions on CPU affinities. Process Lasso will make a best effort to move threads to your chosen CPU affinity, but new threads of a process won’t be constrained to the desired CPU affinity without continuous reapplication of the affinity. Process Lasso will do this automatically if you create a persistent CPU affinity rule. However, you may instead want to use the CPU Sets feature, a weaker form of CPU affinity, since it does not have these multi-group restrictions.

CPU Sets

  • Menu path: ‘Options / CPU / CPU Sets…’

CPU Sets are a ‘softer’ form of CPU Affinities. Instead of a hard contract, they are a suggestion of preferred CPU cores. The OS will try to abide by a CPU Set, but has discretion to schedule outside the Set. This may be necessary when the thread load exceeds the number of cores in the Set, or for power management reasons. CPU Sets are natively supported by Windows.

CPU Sets give the OS thread scheduler more flexibility than CPU Affinities do. If a process with a CPU Sets rule needs more CPU(s) to handle its thread load, the OS can schedule onto CPUs outside the assigned Sets. In contrast, a CPU Affinity can not be violated, so the process’s compute would be limited. Therefore, for performance tuning, CPU Sets are usually preferred. For hard limits on CPU consumption, traditional CPU Affinities should be used.

Some apps and games are sensitive to CPU Affinity changes. In these cases, CPU Sets are a viable alternative since they are less likely to cause complications.

On Intel 12th Gen CPUs (Alder Lake), CPU Sets can be used to signal the OS to only utilize Performance (P) or Efficient (E) cores, or some mix of each, for a process. Many users will find CPU Sets an ideal method to disable E-cores for select applications.

For systems with more than 64 logical CPU cores, CPU Sets are also processor group aware, and a process’s CPU Sets may span multiple processor groups.

Persistent (Sticky) CPU Sets are fully supported by Process Lasso.

Read more about CPU Sets at MSDN.

CPU Sets Rules Dialog
CPU Sets Rules Dialog
CPU Sets Selection Dialog
CPU Sets Selection Dialog

Application Power Profiles

  • Menu path: ‘Options / Power / Application Power Profiles …’

The user can create rules to that cause the system to enter the chosen power profile when specified processes are running. When they terminate, the system is returned to the previous power profile. This lets users target their system power profile for currently running applications. You can do this by right-clicking on a process, using the ‘Application power profile‘ submenu, or by the menu option at ‘Options / Power / Application Power Profiles ….

Application Power Profiles
Application Power Profiles

Auto-Terminate List

  • Menu path: ‘Options / Control / Disallowed Processes …’

The processes listed here will get terminated when they are found to be running. Process Lasso can not (at present) actually prevent them from trying to start up, it just immediately terminates them when it finds them running.

Process Watchdog

  • Menu path: ‘Options / Control / Watchdog (advanced rules) …’

The process watchdog (advanced rules) allows for you to take an action on a process when it exceeds a certain amount of CPU or Memory. You can specify actions such as Restart, Terminate, Log, Execute (external), or Change Affinity. With both memory and CPU triggers, you can set a time the process must exceed this threshold before action is taken..

There are several actions and trigger types.

Triggers

  • CPU
  • Memory

Actions

  • Change CPU Affinity
  • Execute
  • Log Occurrence
  • Restart Process
  • Set CPU Priority Class
  • Set I/O Priority Class
  • Stop Processing Rules
  • Terminate Process
  • Trim Virtual Memory

Options

  • Divide CPU % thresholds by system CPU count
    Divide CPU thresholds by the total logical core count. For example, 3200% could be given, and when divided by 64 cores, would be a threshold of 50% of total CPU use. This allows for more precision on high core count systems.

This feature supports Regular Expressions for more complex and precise matching.

Foreground Boosting

  • Menu path: ‘Options / CPU / Foreground Boosting’

Foreground Boosting will raise the priority class of the process currently in the foreground. Windows already does a foreground priority boost, and further boosting is usually not effective. ProBalance works in the opposite direction, lowering the priority class of problematic background processes, for a reason. Still, Foreground Boosting can be useful in some environments, and on Alder Lake is an easy way to signal to the Windows scheduler that the foreground process should prefer P-cores.

Instance Count Limits

  • Menu path: ‘Options / Control / Instance Count Limits …’

The user can limit the number of instances of a process allowed to be running at the same time (per user session) with this dialog. New instances of processes will be terminated if they match a pattern here and the number of instances is already equal to, or greater than, the instance count limit.

Instance Count Limiter

Keep Running (auto-restart)

  • Menu path: ‘Options / Control / Keep Running (auto-restart) …’

The user can ensure certain processes are kept running by entering in this dialog. This way, they can restart on crash, or restart if they become unresponsive. You can set this by right-clicking on a process, using the ‘Keep process running’, or by using application menu option at ‘Options / Control / Keep Running (auto-restart)…’.

Governor as a Process (GaaP)

Use of the Keep Running feature requires changing the Governor deployment type to a normal process, instead of the default of a system service. To do this, open menu item ‘Options / General / Configure Startup’ and select ‘Start at login for ALL users’ for the Governor deployment type in the bottom portion of the first dialog.

Deploy Governor as a Normal Process

Elevation

NOTE: Processes are always launched unelevated. You can change this behavior by creating a registry value in HKEY_LOCAL_MACHINE\Software\ProcessLasso named “AllowElevatedChildren” with a DWORD type and value of 1 (get .REG file here). By default, this registry key can only be written by elevated administrators. This will still not allow a process to be launched with rights in excess of the governor. Therefore, if the governor is running in a limited user context, any child process will inherit only that context. When the governor is running as a service, launches are prohibited, and the Keep Running function is disabled.

IdleSaver

  • Menu path: ‘Options / Power/ IdleSaver …’

IdleSaver allows the user to set a power plan for use when the system is Idle. This allows the user to run in a high performance power plan while active, but without completely sacrifice energy savings by switching to a more conservative power plan when the user is idle.

Anti-sleep Processes

  • Menu path: ‘Options / Power / Keep Awake …’

The user can prevent the PC and display from entering a sleep or hibernate state by adding them to the ‘anti-sleep’ list. This can be done by right-clicking on a process, using the ‘When running’ menu, or by using application menu option at ‘Options / Configure Anti-Sleep processes …’.

Config Profile Switcher

Config Profiles, found at submenu ‘File / Config Profile‘, are named collections of all process rules and settings. This allows users to create sets of rules for specific workloads, for instance ‘Gaming’ and ‘Productivity’. Previously, these config profiles had limited utility because they couldn’t be automatically switched to when a particular process was run.

The Config Profile Switcher fills the gap by switching config profiles when specified processes are run. When a matched process later terminates, the prior config profile will be restored. Each config profile should have rules to undo any changes made by other profiles, e.g. setting a CPU affinity back to all cores.

This feature should be used sparingly. If multiple simultaneous running processes match different config switcher rules, only the oldest process will have its config enforced.

The Config Profile Switcher supports wildcards and advanced process match rules.

Config Profile Switcher
Config Profile Switcher