[libvirt] [PATCH] 0/4 Add SMBIOS settings to domain definition

Daniel Veillard veillard at redhat.com
Fri Oct 22 12:48:15 UTC 2010


On Fri, Oct 22, 2010 at 01:16:16PM +0100, Daniel P. Berrange wrote:
> On Fri, Oct 22, 2010 at 11:23:45AM +0200, Daniel Veillard wrote:
> > On Fri, Oct 22, 2010 at 09:28:48AM +0100, Daniel P. Berrange wrote:
[...]
> > > I can't help thinking that we should define a set of general
> > > metadata tags, and then have a internal mapping of those to 
> > > SMBIOS fields, in the same way that the <uuid> is automatically
> > > mapped to SMBIOS.
> > > 
> > > eg, define a set of metadata like this:
> > > 
> > >   <metadata>
> > >     <bios-vendor>SeaBIOS</bios-vendor>
> > >     <bios-version>0.13</bios-version>
> > >     <system-manufacturer>Fedora</system-manufacturer>
> > >     <system-product>KVM</system-product>
> > >     <system-version>0.8.2</system-version>
> > >     <system-uuid>c7a5fdbdedaf9455926ad65c16db1809</system-uuid>
> > >   </metadata>
> > 
> >   Okay, but what is the semantic of <system-product> for example ?
> > Does that mean SMBIOS type 1 Product Name or something else left
> > to the appreciation of the driver or of the user ?
> > 
> > > And for smbios just indicate what the source of the data is:
> > > 
> > >     <smbios mode="host|emulate"/>
> > > 
> > >   host - copy from host SMBIOS
> > >   emulate - generic emulator settings + metadata overrides
> > > 
> > > This would map better to what VMWare is letting you do, and let us expose
> > > the metadata through other non-SMBIOS data channels
> > 
> >   Your suggestion is far more flexible, but that comes with the
> > trouble that we have to define those metadata semantic, or we don't
> > define their semantic, and it may get messy in the long term.
> 
> How about a different variation on the theme.
> 
>    <sysinfo type="smbios">
>      <section name="bios">
>        <entry name="Vendor">QEmu/KVM</entry>
>        <entry name="Version">0.13</entry>
>      </section>
>      <section namee="platform">
>        <entry name="Manufacturer">Fedora</entry>
>        <entry name="Product">Virt-Manager</entry>
>        <entry name="Version">0.8.2-3.fc14</entry>
>        <entry name="UUID">c7a5fdbdedaf9455926ad65c16db1809</entry>
>      </section>
>    </sysinfo>
> 
> Where the valid section types, and entry names are defined according to
> the sysinfo type. So with type='smbios', the valid section/entries names
> would be 100% as per the SMBIOS spec.  If we add different sysinfo
> types, we can define appropriate sections/entries as per the spec for
> those types.  This keeps the strictly defined semantics, while avoiding
> a schema that is tied to smbios

  Okay, agreed, hierarchy may look a bit more complex as a result
but it allows to preserve both viewpoint.

  Also for the <smbios> element, should we make the mode a tristate:
    - emulate: do not try to override the default set by the hypervisor
      (if any)
    - host: get the values from the host (libvirtd may have to parse
      the dmidecode output as I don't see how to implement this for QEmu
      otherwise), the only useful mode for ESX driver
    - sysinfo: get the values from <sysinfo> section and pass them to
      the hypervisor.
Also I'm wondering if we should treat <smbios> as a device or keep it
as a top level element along <cpu> etc.

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list