On Thu, Jul 12, 2012 at 01:06:08PM +0200, Jiri Denemark wrote:
> When host CPU could not be properly detected, virConnectCompareCPU will
> just report that any CPU is incompatible with host CPU instead of
> failing.
> ---
> src/qemu/qemu_driver.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index dc04d13..6d3b8d5 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -9419,8 +9419,8 @@ qemuCPUCompare(virConnectPtr conn,
> qemuDriverLock(driver);
>
> if (!driver->caps || !driver->caps->host.cpu) {
> - qemuReportError(VIR_ERR_OPERATION_INVALID,
> - "%s", _("cannot get host CPU capabilities"));
> + VIR_WARN("cannot get host CPU capabilities");
> + ret = VIR_CPU_COMPARE_INCOMPATIBLE;
> } else {
> ret = cpuCompareXML(driver->caps->host.cpu, xmlDesc);
> }
Jiri, I think that I've changed my own taste about this, too.
I don't know what can lead driver->caps to be NULL, but I support that
many things that are unrelated to host CPU can.
If this is the case, the caller of cpuCompareXML may receive a
misleading VIR_CPU_COMPARE_INCOMPATIBLE. Limiting the new ret to the
case of driver->caps->host.cpu == NULL would have been better.
But again: is there a chance that driver->caps->host.cpu is NULL due to
lack of memory during host probing?
I'm still wondering why libvirt must detect a known hardware cpu on the
host. In the age of nested virt, it may find more bizarre combinations,
that it may be interesting to support.
Dan.
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list