CHCPU(8) System Administration CHCPU(8)

# [NAME](#NAME)

chcpu - configure CPUs

# [SYNOPSIS](#SYNOPSIS)

**chcpu** **-c**|**-d**|**-e**|**-g** *cpu-list*

**chcpu** **-p** *mode*

**chcpu** **-r**|**-h**|**-V**

# [DESCRIPTION](#DESCRIPTION)

**chcpu** can modify the state of CPUs. It can enable or disable CPUs, scan for new CPUs, change the CPU dispatching *mode* of the underlying hypervisor, and request CPUs from the hypervisor (configure) or return CPUs to the hypervisor (deconfigure).

Some options have a *cpu-list* argument. Use this argument to specify a comma-separated list of CPUs. The list can contain individual CPU addresses or ranges of addresses. For example, **0,5,7,9-11** makes the command applicable to the CPUs with the addresses 0, 5, 7, 9, 10, and 11.

# [OPTIONS](#OPTIONS)

**-c**, **--configure** *cpu-list*

Configure the specified CPUs. Configuring a CPU means that the hypervisor takes a CPU from the CPU pool and assigns it to the virtual hardware on which your kernel runs.

**-d**, **--disable** *cpu-list*

Disable the specified CPUs. Disabling a CPU means that the kernel sets it offline.

**-e**, **--enable** *cpu-list*

Enable the specified CPUs. Enabling a CPU means that the kernel sets it online. A CPU must be configured, see **-c**, before it can be enabled.

**-g**, **--deconfigure** *cpu-list*

Deconfigure the specified CPUs. Deconfiguring a CPU means that the hypervisor removes the CPU from the virtual hardware on which the Linux instance runs and returns it to the CPU pool. A CPU must be offline, see **-d**, before it can be deconfigured.

**chcpu -g** is not supported on IBM z/VM, CPUs are always in a configured state.

if **chcpu -g** is supported, any **disabled** CPUs should be **deconfigured** to inform the hypervisor that these CPUs won’t be used, avoiding potential performance penalties.

**-p**, **--dispatch** *mode*

Set the CPU dispatching *mode* (polarization). This option has an effect only if your hardware architecture and hypervisor support CPU polarization. Available *modes* are:

**horizontal**

The workload is spread across all available CPUs.

**vertical**

The workload is concentrated on few CPUs.

**-r**, **--rescan**

Trigger a rescan of CPUs. After a rescan, the Linux kernel recognizes the new CPUs. Use this option on systems that do not automatically detect newly attached CPUs.

**-h**, **--help**

Display help text and exit.

**-V**, **--version**

Display version and exit.

# [EXIT STATUS](#EXIT_STATUS)

**chcpu** has the following exit status values:

**0**

success

**1**

failure

**64**

partial success

# [AUTHORS](#AUTHORS)

*Heiko Carstens* &lt;heiko.carstens@de.ibm.com&gt;

# [COPYRIGHT](#COPYRIGHT)

Copyright IBM Corp. 2011

# [SEE ALSO](#SEE_ALSO)

[**lscpu**(1)](/man/os/util-linux/lscpu.1)

# [REPORTING BUGS](#REPORTING_BUGS)

For bug reports, use the *issue tracker* &lt;https://github.com/util-linux/util-linux/issues&gt;.

# [AVAILABILITY](#AVAILABILITY)

The **chcpu** command is part of the util-linux package which can be downloaded from *Linux Kernel Archive* &lt;https://www.kernel.org/pub/linux/utils/util-linux/&gt;.

2026-10-19 util-linux 2.42.4

---

Document: chcpu(8) from util-linux 2.42.4-r1 (Chainguard OS)
