mirror of https://gitee.com/openkylin/libvirt.git
qemu: Don't fail stats collection due to IOThread capability
Commit212dc9286
made a generic qemuDomainGetIOThreadsMon which would fail if the QEMU_CAPS_OBJECT_IOTHREAD didn't exist. Then commitd1eac927
used that helper for the collection of all domain stats. However, if the capability doesn't exist, then the entire stats collection fails. Since the IOThread stats were meant to be if available only, thus rather than failing if the capability doesn't exist, let's just not collect the stats. Restore the caps failure logic for qemuDomainGetIOThreadsLive. Signed-off-by: John Ferlan <jferlan@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
e1fc7ec081
commit
61d1253364
|
@ -5498,16 +5498,9 @@ qemuDomainGetIOThreadsMon(virQEMUDriverPtr driver,
|
|||
virDomainObjPtr vm,
|
||||
qemuMonitorIOThreadInfoPtr **iothreads)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv;
|
||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||
int niothreads = 0;
|
||||
|
||||
priv = vm->privateData;
|
||||
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("IOThreads not supported with this binary"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
niothreads = qemuMonitorGetIOThreads(priv->mon, iothreads);
|
||||
if (qemuDomainObjExitMonitor(driver, vm) < 0 || niothreads < 0)
|
||||
|
@ -5522,6 +5515,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver,
|
|||
virDomainObjPtr vm,
|
||||
virDomainIOThreadInfoPtr **info)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv;
|
||||
qemuMonitorIOThreadInfoPtr *iothreads = NULL;
|
||||
virDomainIOThreadInfoPtr *info_ret = NULL;
|
||||
int niothreads = 0;
|
||||
|
@ -5537,6 +5531,13 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver,
|
|||
goto endjob;
|
||||
}
|
||||
|
||||
priv = vm->privateData;
|
||||
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("IOThreads not supported with this binary"));
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
if ((niothreads = qemuDomainGetIOThreadsMon(driver, vm, &iothreads)) < 0)
|
||||
goto endjob;
|
||||
|
||||
|
@ -20882,6 +20883,7 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver,
|
|||
int *maxparams,
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv = dom->privateData;
|
||||
size_t i;
|
||||
qemuMonitorIOThreadInfoPtr *iothreads = NULL;
|
||||
int niothreads;
|
||||
|
@ -20890,6 +20892,9 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver,
|
|||
if (!virDomainObjIsActive(dom))
|
||||
return 0;
|
||||
|
||||
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD))
|
||||
return 0;
|
||||
|
||||
if ((niothreads = qemuDomainGetIOThreadsMon(driver, dom, &iothreads)) < 0)
|
||||
return -1;
|
||||
|
||||
|
|
Loading…
Reference in New Issue