
On 11/11/13 10:23, Guido Günther wrote:
There's no need to probe CPU features if we don't need them later.
Debian Wheezy's QEMU 1.1.2 lacks the feature-word option so this unbreaks starting domains that got broken by d94b7817719b064849818b9ba6c37e403b7c003c like
error: internal error: unable to execute QEMU command 'qom-get': Property '.feature-words' not found --- This might not be ideal since we might to want to use qemuMonitorGetGuestCPU somewhere else later so I'm happy to improve on this. Cheers, -- Guido
src/qemu/qemu_process.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index fcceedd..be09ea0 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3477,14 +3477,14 @@ qemuProcessVerifyGuestCPU(virQEMUDriverPtr driver, virDomainObjPtr vm) switch (arch) { case VIR_ARCH_I686: case VIR_ARCH_X86_64: - qemuDomainObjEnterMonitor(driver, vm); - guestcpu = qemuMonitorGetGuestCPU(priv->mon, arch); - qemuDomainObjExitMonitor(driver, vm); + if (def->features[VIR_DOMAIN_FEATURE_PVSPINLOCK] == VIR_DOMAIN_FEATURE_STATE_ON) { + qemuDomainObjEnterMonitor(driver, vm); + guestcpu = qemuMonitorGetGuestCPU(priv->mon, arch); + qemuDomainObjExitMonitor(driver, vm);
- if (!(guestcpu)) - goto cleanup; + if (!(guestcpu)) + goto cleanup;
- if (def->features[VIR_DOMAIN_FEATURE_PVSPINLOCK] == VIR_DOMAIN_FEATURE_STATE_ON) { if (!cpuHasFeature(guestcpu, VIR_CPU_x86_KVM_PV_UNHALT)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("host doesn't support paravirtual spinlocks"));
While this correctly fixes the problem, the code won't be extendable in the future. I'll try sending a patch to fix this problem more cleanly. Sorry for causing trouble. Peter