Message ID | 20211116163443.88707-6-vkuznets@redhat.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | KVM: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS and re-purpose it on x86 | expand |
Am 16.11.21 um 17:34 schrieb Vitaly Kuznetsov: > KVM_CAP_NR_VCPUS is a legacy advisory value which on other architectures > return num_online_cpus() caped by KVM_CAP_NR_VCPUS or something else > (ppc and arm64 are special cases). On s390, KVM_CAP_NR_VCPUS returns > the same as KVM_CAP_MAX_VCPUS and this may turn out to be a bad > 'advice'. Switch s390 to returning caped num_online_cpus() too. > > Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> you can also add Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> (yes I am changing my default address, but the other should continue to work) > Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> > --- > arch/s390/kvm/kvm-s390.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c > index 6a6dd5e1daf6..1cfe36f6432e 100644 > --- a/arch/s390/kvm/kvm-s390.c > +++ b/arch/s390/kvm/kvm-s390.c > @@ -585,6 +585,8 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > r = KVM_MAX_VCPUS; > else if (sclp.has_esca && sclp.has_64bscao) > r = KVM_S390_ESCA_CPU_SLOTS; > + if (ext == KVM_CAP_NR_VCPUS) > + r = min_t(unsigned int, num_online_cpus(), r); > break; > case KVM_CAP_S390_COW: > r = MACHINE_HAS_ESOP; >
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 6a6dd5e1daf6..1cfe36f6432e 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -585,6 +585,8 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) r = KVM_MAX_VCPUS; else if (sclp.has_esca && sclp.has_64bscao) r = KVM_S390_ESCA_CPU_SLOTS; + if (ext == KVM_CAP_NR_VCPUS) + r = min_t(unsigned int, num_online_cpus(), r); break; case KVM_CAP_S390_COW: r = MACHINE_HAS_ESOP;