From mboxrd@z Thu Jan 1 00:00:00 1970 From: Radim =?utf-8?B?S3LEjW3DocWZ?= Subject: Re: [PATCH v5 2/2] kvm: introduce KVM_MAX_VCPU_ID Date: Wed, 4 May 2016 18:45:34 +0200 Message-ID: <20160504164533.GB27590@potion> References: <146221092579.32310.10051562885606992534.stgit@bahia.huguette.org> <146221113787.32310.7342723782230547207.stgit@bahia.huguette.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Paolo Bonzini , james.hogan@imgtec.com, mingo@redhat.com, linux-mips@linux-mips.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, David Hildenbrand , qemu-ppc@nongnu.org, Cornelia Huck , Paul Mackerras , David Gibson To: Greg Kurz Return-path: Content-Disposition: inline In-Reply-To: <146221113787.32310.7342723782230547207.stgit@bahia.huguette.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 2016-05-03 06:52+0200, Greg Kurz: > 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. > > Only PowerPC gets unlimited vCPU ids for the moment. This patch doesn't > change anything for other archs. > > Suggested-by: Radim Krcmar > Signed-off-by: Greg Kurz > --- > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > @@ -2272,7 +2272,7 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id) > int r; > struct kvm_vcpu *vcpu; > > - if (id >= KVM_MAX_VCPUS) > + if (id >= KVM_MAX_VCPU_ID) > return -EINVAL; book3s_hv will currently fail with vcpu_id above threads_per_subcore * KVM_MAX_VCORES, so userspace cannot use KVM_CAP_MAX_VCPU_ID to limit vcpu_id ... I thought the check for vcpu_id would move to arch-specific code, like the previous version did, to simplify implementation of a dynamic limit. The dynamic limit was too complicated to be worth it? (This version is ok too.)