From 4086f9ed5c13613224957b807901ca262fd4d077 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 17 Feb 2025 13:55:08 +0100 Subject: [PATCH] qemuDomainGetStatsDirtyRate: Don't error out MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/qemu/qemu_driver.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) 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"); -- 2.47.3