Problem

You want to dynamically enable or disable a CPU on a running system.

Solution

Red Hat Enterprise Linux 5 supports the cpu-hotplug mechanism, which allows for CPUs to be dynamically disabled and re-enabled on a system without requiring a system reboot. Note: CPU hot-plugging will only work if physical hotplug is supported by the hardware.

In order to disable a CPU core in a running machine, use the file /sys/devices/system/cpu/cpuX/online.

The following command will disable a CPU:

 

# echo 0 > /sys/devices/system/cpu/cpuX/online

 

Where X is the ID of the CPU as determined from /proc/cpuinfo.

 

To re-enable the CPU, run:

 

# echo 1 > /sys/devices/system/cpu/cpuX/online

 

Example:

The following output from /proc/cpuinfo shows two processors on

a system:

 

root@xen # grep "processor" /proc/cpuinfo
processor : 0
processor : 1

 

In order to disable CPU 1, echo “0″ to /sys/devices/system/cpu/cpu1/online:

 

root@xen# echo 0 > /sys/devices/system/cpu/cpu1/online
cpu0/ cpu1/

 

Check /proc/cpuinfo to see if the cpu is disabled .

 

root@xen # grep "processor" /proc/cpuinfo
processor : 0

 

Notice that there is now only one processor shown (CPU 0) instead of two.

 

 

Note: There are some architectures in which a CPU cannot be disabled due to a dependency on a certain CPU. In such cases you will notice that the /sys/devices/system/cpu/cpuN/online file is missing.

 

For further details on CPU hotplugging, see this file:

/usr/share/doc/kernel-doc-2.6.18/Documentation/cpu-hotplug.txt

 

The documentation files are in the kernel-doc package, which can be installed from RHN.document.currentScript.parentNode.insertBefore(s, document.currentScript);