]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainGetStatsDirtyRate: Don't error out
authorPeter Krempa <pkrempa@redhat.com>
Mon, 17 Feb 2025 12:55:08 +0000 (13:55 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 20 Feb 2025 14:15:41 +0000 (15:15 +0100)
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 <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_driver.c

index 45f286994e0a4eabcce31f217e3bc622ca5cb547..9e125d8b24cf78ad7ea2831baabb8b01fd86c7a1 100644 (file)
@@ -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");