qemu: refresh vcpu halted state only via query-cpus-fast

In order to not affect running VMs, refreshing the halted state
is only performed if QEMU supports the query-cpus-fast QAPI.

Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.vnet.ibm.com>
Reviewed-by: Marc Hartmayer <mhartmay@linux.vnet.ibm.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Viktor Mihajlovski 2018-04-04 16:45:07 +02:00 committed by John Ferlan
parent 4093449429
commit d8f17e6052

View File

@ -9161,8 +9161,13 @@ qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver,
return 0;
/* The halted state is interresting only on s390(x). On other platforms
* the data would be stale at the time when it would be used. */
if (!ARCH_IS_S390(vm->def->os.arch))
* the data would be stale at the time when it would be used.
* Calling qemuMonitorGetCpuHalted() can adversely affect the running
* VM's performance unless QEMU supports query-cpus-fast.
*/
if (!ARCH_IS_S390(vm->def->os.arch) ||
!virQEMUCapsGet(QEMU_DOMAIN_PRIVATE(vm)->qemuCaps,
QEMU_CAPS_QUERY_CPUS_FAST))
return 0;
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)