On 12/03/2010 02:50 AM, Gleb Natapov wrote:
>>>> I am surprised that libvirt still uses -uuid.
Why? It still works, and it's backwards compatible even to older qemu
where -smbios wasn't supported. It's actually harder to omit -uuid and
use only -smbios, after first guaranteeing that -smbios is supported,
than it is blindly use -uuid. And since -uuid may have more
implications than just the -smbios table, whereas -smbios should not
affect anything except the smbios table, it makes sense to continue to
use -uuid for any of those other implications.
>>>
>>> SMBIOS tables are only setup on x86 QEMU binaries, doing fullvirt.
>>> On non-x86, or QEMU used for Xen paravirt, the -uuid arg value
>>> would be used in other ways unrelated to SMBIOS. Thus replacing
>>> -uuid $UUID with -smbiios type=1,uuid=$UUID would be wrong.
>>>
>> What non-x86 platforms libvirt supports? With Xen use -uuid or whatever
>> they support. With KVM use only smbios type=1,uuid=$UUID. There is not
>> valid reason that I see to use both. But if you use both of them for some
>> strange reason please make sure you provide the same value for both.
>
> libvirt aims to support any and all QEMU target architectures
> not merely x86. There's no benefit to using -smbios type=1,uuid=$UUID
> with KVM, over -uuid $UUID.
So why do you use them both? Even more interesting question why do you
use them both with different $UUID? If you do, do not complain that there
should be some kind of order between them.
There's the real question. We use both as of libvirt 0.8.6 because we
added the new XML for <sysinfo
type='smbios'>...</sysinfo><os><smbios
mode='sysinfo'/></os>, where <sysinfo> provides the argument to
pass to
qemu's -smbios argument.
However, I agree with your assessment that -uuid and -smbios
type=1,uuid= should never differ, so I've proposed an updated patch
series to guarantee that behavior (particularly patch 4/5):
https://www.redhat.com/archives/libvir-list/2010-December/msg00237.html
As for whether it is useful to pass the host UUID to the client through
smbios, I agree with you that 1. it is still up in the air as to whether
that is a decent design, or whether something better should be dreamed
up, and 2. it would have to be done through smbios block 11 (OEM
strings) and NOT by changing the guest's uuid (whether that uuid was
supplied by <uuid>, by <sysinfo>, or identically in both locations, from
the libvirt XML). But both of those points are part of the bigger
picture, and shouldn't affect whether my patch series is accepted for
fixing up current bugs in libvirt smbios handling (although it may imply
future libvirt patches to start creating an appropriate binary file for
use with -smbios binary=file for passing the host uuid as an oem string).
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org