20.4. CPU Allocation
<domain> ... <vcpu placement='static' cpuset="1-4,^3,6" current="1">2</vcpu> ... </domain>
Figure 20.6. CPU allocation
The
<cpu>
element defines the maximum number of virtual CPUs (vCPUs) allocated for the guest virtual machine operating system, which must be between 1 and the maximum supported by the hypervisor. This element can contain an optional cpuset
attribute, which is a comma-separated list of physical CPU numbers that domain processes and virtual CPUs can be pinned to by default.
Note that the pinning policy of domain processes and virtual CPUs can be specified separately by using the
cputune
attribute. If the emulatorpin
attribute is specified in <cputune>
, the cpuset
value specified by <vcpu>
will be ignored.
Similarly, virtual CPUs that have set a value for
vcpupin
cause cpuset
settings to be ignored. Virtual CPUs where vcpupin
is not specified will be pinned to the physical CPUs specified by cpuset
. Each element in the cpuset
list is either a single CPU number, a range of CPU numbers, or a caret (^) followed by a CPU number to be excluded from a previous range. The attribute current
can be used to specify whether fewer than the maximum number of virtual CPUs should be enabled.
The optional attribute
placement
can be used to specify the CPU placement mode for the domain process. placement
can be set as either static
or auto
. If you set <vcpu placement='auto'>
, the system will query numad and use the settings specified in the <numatune>
tag, and ignore any other settings in <vcpu>
. If you set <vcpu placement='static'>
, the system will use the settings specified in the <vcpu placement>
tag instead of the settings in <numatune>
.