//po4a: entry man manual
= chcpu(8)
:doctype: manpage
:man manual: System Administration
:man source: util-linux {release-version}
:page-layout: base
:command: chcpu

== NAME

chcpu - configure CPUs

== SYNOPSIS

*chcpu* *-c*|*-d*|*-e*|*-g* _cpu-list_

*chcpu* *-p* _mode_

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

== 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

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

include::man-common/help-version.adoc[]

== EXIT STATUS

*chcpu* has the following exit status values:

*0*::
success

*1*::
failure

*64*::
partial success

== AUTHORS

mailto:heiko.carstens@de.ibm.com[Heiko Carstens]

== COPYRIGHT

Copyright IBM Corp. 2011

== SEE ALSO

*lscpu*(1)

include::man-common/bugreports.adoc[]

include::man-common/footer.adoc[]

ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]
