[libvirt] [PATCH REPOST 1/3] util: hostcpu: Add virHostCPUGetKVMMaxVCPUs() stub

Michal Privoznik mprivozn at redhat.com
Sat Jul 9 08:33:46 UTC 2016


On 08.07.2016 18:04, Andrea Bolognani wrote:
> If we don't HAVE_LINUX_KVM_H, we can't query /dev/kvm to discover
> the limits on the number of vCPUs, so we report an error and
> return a negative value instead.
> ---
>  src/util/virhostcpu.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
> index 4ff4e72..a33932f 100644
> --- a/src/util/virhostcpu.c
> +++ b/src/util/virhostcpu.c
> @@ -1299,6 +1299,7 @@ virHostCPUGetThreadsPerSubcore(virArch arch ATTRIBUTE_UNUSED)
>  
>  #endif /* HAVE_LINUX_KVM_H && defined(KVM_CAP_PPC_SMT) */
>  
> +#if HAVE_LINUX_KVM_H
>  int
>  virHostCPUGetKVMMaxVCPUs(void)
>  {
> @@ -1310,11 +1311,11 @@ virHostCPUGetKVMMaxVCPUs(void)
>          return -1;
>      }
>  
> -#ifdef KVM_CAP_MAX_VCPUS
> +# 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 */
> +# endif /* KVM_CAP_MAX_VCPUS */
>  
>      /* as a fallback get KVM_CAP_NR_VCPUS (the recommended maximum number of
>       * vcpus). Note that on most machines this is set to 160. */
> @@ -1329,3 +1330,12 @@ virHostCPUGetKVMMaxVCPUs(void)
>      VIR_FORCE_CLOSE(fd);
>      return ret;
>  }
> +#else
> +int
> +virHostCPUGetKVMMaxVCPUs(void)
> +{
> +    virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                   _("KVM is not supported on this platform"));

Don't mean to bikeshed, but I'd  prefer if this were:

virReportSystemError(ENOSYS, ..);

I think it's the common patter we use for non-Linux, non-BSD* platform
stubs. And if you think of it, it really is a property of a system, not
unsupported config on libvirt level. BTW I know that we are not
consistent in the error codes. It's one big mess.

> +    return -1;
> +}
> +#endif /* HAVE_LINUX_KVM_H */
> 

Michal




More information about the libvir-list mailing list