]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainGetStatsCpuCache: 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:40 +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 cache 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 e2db449a7a4e5bc3ba797e7b62534d910f323f92..efb6e2c4548742941f61c4d8536d0f1929aa51fa 100644 (file)
@@ -16760,7 +16760,7 @@ qemuDomainGetStatsMemoryBandwidth(virQEMUDriver *driver,
 }
 
 
-static int
+static void
 qemuDomainGetStatsCpuCache(virQEMUDriver *driver,
                            virDomainObj *dom,
                            virTypedParamList *params)
@@ -16769,14 +16769,16 @@ qemuDomainGetStatsCpuCache(virQEMUDriver *driver,
     size_t nresdata = 0;
     size_t i = 0;
     size_t j = 0;
-    int ret = -1;
 
     if (!virDomainObjIsActive(dom))
-        return 0;
+        return;
 
     if (qemuDomainGetResctrlMonData(driver, dom, &resdata, &nresdata,
-                                    VIR_RESCTRL_MONITOR_TYPE_CACHE) < 0)
-        goto cleanup;
+                                    VIR_RESCTRL_MONITOR_TYPE_CACHE) < 0) {
+        /* don't return cache stats if we can't fetch them */
+        virResetLastError();
+        return;
+    }
 
     virTypedParamListAddUInt(params, nresdata, "cpu.cache.monitor.count");
 
@@ -16803,12 +16805,9 @@ qemuDomainGetStatsCpuCache(virQEMUDriver *driver,
         }
     }
 
-    ret = 0;
- cleanup:
     for (i = 0; i < nresdata; i++)
         qemuDomainFreeResctrlMonData(resdata[i]);
     VIR_FREE(resdata);
-    return ret;
 }
 
 
@@ -16956,8 +16955,7 @@ qemuDomainGetStatsCpu(virQEMUDriver *driver,
         qemuDomainGetStatsCpuProc(dom, params);
     }
 
-    if (qemuDomainGetStatsCpuCache(driver, dom, params) < 0)
-        return -1;
+    qemuDomainGetStatsCpuCache(driver, dom, params);
 
     qemuDomainGetStatsCpuHaltPollTime(dom, params, privflags);