[libvirt] [PATCH v2 2/2] virSysinfoReadARM: Try reading DMI table

Daniel P. Berrangé berrange at redhat.com
Fri May 10 12:24:34 UTC 2019


On Fri, May 10, 2019 at 02:20:25PM +0200, Michal Privoznik wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1426162
> 
> Turns out, some aarch64 systems have SMBIOS info. That means we

In fact aarch64 are required to support SMBIOS if they want to
be compliant with the Server Base Boot Requirements spec. This
effectively covers any aarch64 machine targetted as data center
servers.

> can use dmidecode to fetch some information. If that fails, fall
> back to the old behaviour.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/util/virsysinfo.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c
> index b371e8dd26..83da3897ce 100644
> --- a/src/util/virsysinfo.c
> +++ b/src/util/virsysinfo.c
> @@ -192,6 +192,14 @@ void virSysinfoDefFree(virSysinfoDefPtr def)
>  }
>  
>  
> +static bool
> +virSysinfoDefEmpty(const virSysinfoDef *def)
> +{
> +    return !(def->bios || def->system || def->nbaseBoard ||
> +             def->chassis || def->nprocessor || def->nmemory || def->oemStrings);
> +}
> +
> +
>  static int
>  virSysinfoParsePPCSystem(const char *base, virSysinfoSystemDefPtr *sysdef)
>  {
> @@ -433,6 +441,16 @@ virSysinfoReadARM(void)
>      virSysinfoDefPtr ret = NULL;
>      char *outbuf = NULL;
>  
> +    /* Some ARM systems have DMI tables available. */
> +    if ((ret = virSysinfoReadDMI())) {
> +        if (!virSysinfoDefEmpty(ret))
> +            return ret;
> +        virSysinfoDefFree(ret);
> +    }
> +
> +    /* Well, we've tried. Fall back to parsing cpuinfo */
> +    virResetLastError();
> +
>      if (VIR_ALLOC(ret) < 0)
>          goto no_memory;
>  
> -- 
> 2.21.0
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list