From: Peter Krempa Date: Mon, 17 Feb 2025 12:55:08 +0000 (+0100) Subject: qemuDomainGetStatsDirtyRate: Don't error out X-Git-Tag: v11.1.0-rc1~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4086f9ed5c13613224957b807901ca262fd4d077;p=thirdparty%2Flibvirt.git qemuDomainGetStatsDirtyRate: Don't error out The bulk domain stats API is meant to collect as much data as possible without erroring out. If fetching of the dirty rate stats fails just skip outputting them. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 45f286994e..9e125d8b24 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -17601,19 +17601,6 @@ qemuDomainGetStatsPerf(virQEMUDriver *driver G_GNUC_UNUSED, return 0; } -static int -qemuDomainGetStatsDirtyRateMon(virDomainObj *vm, - qemuMonitorDirtyRateInfo *info) -{ - qemuDomainObjPrivate *priv = vm->privateData; - int ret; - - qemuDomainObjEnterMonitor(vm); - ret = qemuMonitorQueryDirtyRate(priv->mon, info); - qemuDomainObjExitMonitor(vm); - - return ret; -} static int qemuDomainGetStatsDirtyRate(virQEMUDriver *driver G_GNUC_UNUSED, @@ -17621,13 +17608,21 @@ qemuDomainGetStatsDirtyRate(virQEMUDriver *driver G_GNUC_UNUSED, virTypedParamList *params, unsigned int privflags) { + qemuDomainObjPrivate *priv = dom->privateData; qemuMonitorDirtyRateInfo info; + int rv; if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom)) return 0; - if (qemuDomainGetStatsDirtyRateMon(dom, &info) < 0) - return -1; + qemuDomainObjEnterMonitor(dom); + rv = qemuMonitorQueryDirtyRate(priv->mon, &info); + qemuDomainObjExitMonitor(dom); + + if (rv < 0) { + virResetLastError(); + return 0; + } virTypedParamListAddInt(params, info.status, "dirtyrate.calc_status"); virTypedParamListAddLLong(params, info.startTime, "dirtyrate.calc_start_time");