[libvirt] [PATCH] qemu_driver: Try KVM_CAP_MAX_VCPUS only if defined
Michal Privoznik
mprivozn at redhat.com
Wed Mar 13 13:33:41 UTC 2013
On 13.03.2013 11:42, Peter Krempa wrote:
> On 03/13/13 11:35, Michal Privoznik wrote:
>> With our recent patch (1715c83b5f) we thrive to get the correct
>> number of maximal VCPUs. However, we are using a constant from
>> linux/kvm.h which may be not defined in every distro. Hence, we
>> should guard usage of the constant with ifdef preprocessor
>> directive.
>> ---
>> src/qemu/qemu_driver.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index de53a1b..c3a8f24 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -1122,9 +1122,11 @@ kvmGetMaxVCPUs(void) {
>> return -1;
>> }
>>
>> +#ifdef KVM_CAP_MAX_VCPUS
>> /* at first try KVM_CAP_MAX_VCPUS to determine the maximum count */
>> if ((ret = ioctl(fd, KVM_CHECK_EXTENSION, KVM_CAP_MAX_VCPUS)) > 0)
>> goto cleanup;
>> +#endif /* KVM_CAP_MAX_VCPUS */
>
> Bah. This feature was introduced not so long ago in the linux tree.
>
> commit 8c3ba334f8588e1d5099f8602cf01897720e0eca
> Author: Sasha Levin <levinsasha928 at gmail.com>
> Date: Mon Jul 18 17:17:15 2011 +0300
>
> KVM: x86: Raise the hard VCPU count limit
>
> The patch raises the hard limit of VCPU count to 254.
>
> This will allow developers to easily work on scalability
> and will allow users to test high VCPU setups easily without
> patching the kernel.
>
> To prevent possible issues with current setups, KVM_CAP_NR_VCPUS
> now returns the recommended VCPU limit (which is still 64) - this
> should be a safe value for everybody, while a new KVM_CAP_MAX_VCPUS
> returns the hard limit which is now 254.
>
> $ git desc 8c3ba334f
> v3.1-rc7-48-g8c3ba33
>>
>> /* as a fallback get KVM_CAP_NR_VCPUS (the recommended maximum
>> number of
>> * vcpus). Note that on most machines this is set to 160. */
>>
>
> ACK the fallback paths are designed gracefully in the function.
>
> Peter
>
I've appended the kernel commit message just for case somebody wants to
trace how many kernel releases back we've broken things down and pushed.
:) Thanks!
Michal
More information about the libvir-list
mailing list