aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/virtual
diff options
context:
space:
mode:
authorGreg Kurz <gkurz@linux.vnet.ibm.com>2016-05-09 12:13:37 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2016-05-11 16:37:54 -0400
commit0b1b1dfd52a67f4f09a18cb82337199bc90ad7fb (patch)
tree7d4ec00b96a96ef12fe3aeab042de758451e1bd4 /Documentation/virtual
parent9b9e3fc4d5a31f6050508f2404369beac4356867 (diff)
kvm: introduce KVM_MAX_VCPU_ID
The KVM_MAX_VCPUS define provides the maximum number of vCPUs per guest, and also the upper limit for vCPU ids. This is okay for all archs except PowerPC which can have higher ids, depending on the cpu/core/thread topology. In the worst case (single threaded guest, host with 8 threads per core), it limits the maximum number of vCPUS to KVM_MAX_VCPUS / 8. This patch separates the vCPU numbering from the total number of vCPUs, with the introduction of KVM_MAX_VCPU_ID, as the maximal valid value for vCPU ids plus one. The corresponding KVM_CAP_MAX_VCPU_ID allows userspace to validate vCPU ids before passing them to KVM_CREATE_VCPU. This patch only implements KVM_MAX_VCPU_ID with a specific value for PowerPC. Other archs continue to return KVM_MAX_VCPUS instead. Suggested-by: Radim Krcmar <rkrcmar@redhat.com> Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'Documentation/virtual')
-rw-r--r--Documentation/virtual/kvm/api.txt10
1 files changed, 8 insertions, 2 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index 8cc857fffcc7..a4482cce4bae 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -199,8 +199,8 @@ Type: vm ioctl
199Parameters: vcpu id (apic id on x86) 199Parameters: vcpu id (apic id on x86)
200Returns: vcpu fd on success, -1 on error 200Returns: vcpu fd on success, -1 on error
201 201
202This API adds a vcpu to a virtual machine. The vcpu id is a small integer 202This API adds a vcpu to a virtual machine. No more than max_vcpus may be added.
203in the range [0, max_vcpus). 203The vcpu id is an integer in the range [0, max_vcpu_id).
204 204
205The recommended max_vcpus value can be retrieved using the KVM_CAP_NR_VCPUS of 205The recommended max_vcpus value can be retrieved using the KVM_CAP_NR_VCPUS of
206the KVM_CHECK_EXTENSION ioctl() at run-time. 206the KVM_CHECK_EXTENSION ioctl() at run-time.
@@ -212,6 +212,12 @@ cpus max.
212If the KVM_CAP_MAX_VCPUS does not exist, you should assume that max_vcpus is 212If the KVM_CAP_MAX_VCPUS does not exist, you should assume that max_vcpus is
213same as the value returned from KVM_CAP_NR_VCPUS. 213same as the value returned from KVM_CAP_NR_VCPUS.
214 214
215The maximum possible value for max_vcpu_id can be retrieved using the
216KVM_CAP_MAX_VCPU_ID of the KVM_CHECK_EXTENSION ioctl() at run-time.
217
218If the KVM_CAP_MAX_VCPU_ID does not exist, you should assume that max_vcpu_id
219is the same as the value returned from KVM_CAP_MAX_VCPUS.
220
215On powerpc using book3s_hv mode, the vcpus are mapped onto virtual 221On powerpc using book3s_hv mode, the vcpus are mapped onto virtual
216threads in one or more virtual CPU cores. (This is because the 222threads in one or more virtual CPU cores. (This is because the
217hardware requires all the hardware threads in a CPU core to be in the 223hardware requires all the hardware threads in a CPU core to be in the