On 12/02/2010 05:47 AM, Daniel P. Berrange wrote:
On Wed, Dec 01, 2010 at 05:12:08PM -0700, Eric Blake wrote:
> In testing <smbios mode='host'/>, I noticed a couple of problems.
> First, qemu rejected the command line we gave it (invalid UUID);
> ifixingthat showed that all other arguments were being given literal
> "" which then made the guest smbios differ from the host. Second,
> the qemu option -smbios type=1,family=string wasn't supported, which
> lead to a spurious difference between host and guest.
>
> Meanwhile, qemu has a bug where '-smbios type=1,uuid=uuid' must parse
> as a valid uuid, but is otherwise ignored. The current qemu.git code
> base _only_ sets smbios uuid from the '-uuid uuid' argument. I've
> filed a bug against the qemu folks asking whether this is intended (in
> which case we have to modify libvirt to change the -uuid argument it
> outputs when smbios is specified), or an oversight (hopefully the
> latter, since it's still nice to correlate
> /var/log/libvirt/qemu/....log with the XML uuid even when that differs
> from the smbios uuid presented to the guest.)
Hmm, I thought the UUID we were passing in was a host UUID, but
on closer inspection the type=1 table is definitely intended to
carry the guest UUID. As such it doesn't make sense to populate
that with anything other than the '<uuid>' from the guest XML.
A host UUID should live elsewhere in the SMBIOS tables, likely
in the type2 or type3 blocks
What does that mean to our XML? Should we reject XML files where both
domain/uuid and domain/sysinfo/system/entry/uuid exist, but differ?
Both elements are optional, so it's feasible to see a guest uuid in
either location. Meanwhile, I'm waiting on resolution to
https://bugzilla.redhat.com/show_bug.cgi?id=659122 to see if qemu will
be patched to let us stick the host's uuid in block 2 (base board) or
block 3 (chassis), in which case, we'll need to expand our XML to
support that notion.
I've also discovered that with current qemu, if both '-uuid uuid' and
'-smbios type=1,uuid=uuid' are specified, then -uuid takes precedence;
but either one of the two in isolation serves to set smbios block 1 with
the guest's uuid.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org