[libvirt PATCH] util: Fix getting CPU frequency on Apple Silicon

Andrea Bolognani abologna at redhat.com
Fri Feb 11 17:32:24 UTC 2022


On Thu, Feb 10, 2022 at 10:08:42AM +0100, Andrea Bolognani wrote:
> +++ b/src/util/virhostcpu.c
> @@ -928,8 +928,14 @@ virHostCPUGetInfo(virArch hostarch G_GNUC_UNUSED,
>      *mhz = cpu_freq;
>  # else
>      if (sysctlbyname("hw.cpufrequency", &cpu_freq, &cpu_freq_len, NULL, 0) < 0) {
> -        virReportSystemError(errno, "%s", _("cannot obtain CPU freq"));
> -        return -1;
> +        if (errno == ENOENT) {
> +            /* The hw.cpufrequency sysctl is not implemented on Apple Silicon.
> +             * In that case, we report 0 instead of erroring out */
> +            cpu_freq = 0;
> +        } else {
> +            virReportSystemError(errno, "%s", _("cannot obtain CPU freq"));
> +            return -1;
> +        }
>      }

Menci, can you please confirm this works for you before I push? I
have no way of verifying that on my own. Thanks!

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list