On Mon, 09 May 2016 18:13:37 +0200 Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> wrote: > 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@xxxxxxxxxx> > Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx> > --- > v6: - provide cap in generic code (Cornelia) > - change PowerPC limit to threads_per_subcore * KVM_MAX_VCORES (Radim) > --- > Documentation/virtual/kvm/api.txt | 10 ++++++++-- > arch/powerpc/include/asm/kvm_host.h | 3 +++ > include/linux/kvm_host.h | 4 ++++ > include/uapi/linux/kvm.h | 1 + > virt/kvm/kvm_main.c | 4 +++- > 5 files changed, 19 insertions(+), 3 deletions(-) Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>