Disable CPU cores to save power: on Windows 10/11, Linux
To run certain applications that are not compatible with multi-core operations or to save power it may be necessary to disable a core in a multi-core CPU. This article will show you how for both Windows and Linux operating systems.
Why disable a core?
In Windows systems, it is possible to disable a core through the system configuration window. Choose the number of processors that should be enabled or disabled and restart the computer for the settings to take effect. Disabling a core in Linux can be done through the grub menu and add parameters to the kernel entry. These parameters are sent directly to the core when the Linux is starting. The Linux system has to be restarted after the modifications to disable a core in a multi-core CPU are made.
It can sometimes be quite useful with a multi-core processor to be able to determine whether a core is working properly during rise in frequencies or for testing purposes. This can be done by disabling a core, thereby isolating the potentially problematic one. Sometimes this procedure is necessary to run certain applications, which are not compatible with multi core processing.
Note that this procedure will not affect physically your hardware, but your OS (Windows or Linux) will simply ignore the core(s) you selected.
How to disable a core on Windows 10/11?
- Right-click on This PC > Properties.
- Open Advanced system options.
- Move to the Advanced tab > Environment Variables.
- Select NUMBERS_OF_PROCESSORS, then click on Edit.
- In the Variable value: field, put the number of cores you want active.
- Press OK > OK > APPLY > OK.
What is the procedure when using Linux?
When using Linux the procedure is quite different. When starting up your PC, you should find the Grub menu, which is responsible for launching Linux. Select the entry you want to use, press the E key and a menu will appear (depending on the version used).
title Ubuntu 7.10, kernel 2.6.22-14-generic root (hd0,5) kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=a8a39729-9d2a-425b-b84b-ecc5c7dad104 ro quiet splash initrd /boot/initrd.img-2.6.22-14-generic quiet
Using the arrow keys, go the line beginning with the word "kernel" and press E again.
Be aware that you are editing the line, which defines the path to your Linux kernel (core). At the end of the line, add the following command:
maxcpus=1
The end result should be:
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=a8a39729-9d2a-425b-b84b-ecc5c7dad104 ro quiet maxcpus=1
Note: que ro, quiet and maxcpus are the parameters sent to the core when starting up Linux.
Press the B key to start Linux.