[PATCH 19/21] qemuDomainGetStatsMemoryBandwidth: Don't error out

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The bulk domain stats API is meant to collect as much data as possible
without erroring out.

If fetching of the memory bandwidth stats fails just skip outputing them.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/qemu/qemu_driver.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e513223de2..45f286994e 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16697,28 +16697,30 @@ qemuDomainGetResctrlMonData(virQEMUDriver *driver,
 }


-static int
+static void
 qemuDomainGetStatsMemoryBandwidth(virQEMUDriver *driver,
                                   virDomainObj *dom,
                                   virTypedParamList *params)
 {
-    virQEMUResctrlMonData **resdata = NULL;
+    g_autofree virQEMUResctrlMonData **resdata = NULL;
     char **features = NULL;
     size_t nresdata = 0;
     size_t i = 0;
     size_t j = 0;
     size_t k = 0;
-    int ret = -1;

     if (!virDomainObjIsActive(dom))
-        return 0;
+        return;

     if (qemuDomainGetResctrlMonData(driver, dom, &resdata, &nresdata,
-                                    VIR_RESCTRL_MONITOR_TYPE_MEMBW) < 0)
-        goto cleanup;
+                                    VIR_RESCTRL_MONITOR_TYPE_MEMBW) < 0) {
+        /* don't return cache stats if we can't fetch them */
+        virResetLastError();
+        return;
+    }

     if (nresdata == 0)
-        return 0;
+        return;

     virTypedParamListAddUInt(params, nresdata, "memory.bandwidth.monitor.count");

@@ -16751,12 +16753,8 @@ qemuDomainGetStatsMemoryBandwidth(virQEMUDriver *driver,
         }
     }

-    ret = 0;
- cleanup:
     for (i = 0; i < nresdata; i++)
         qemuDomainFreeResctrlMonData(resdata[i]);
-    VIR_FREE(resdata);
-    return ret;
 }


@@ -16970,7 +16968,8 @@ qemuDomainGetStatsMemory(virQEMUDriver *driver,
                          unsigned int privflags G_GNUC_UNUSED)

 {
-    return qemuDomainGetStatsMemoryBandwidth(driver, dom, params);
+    qemuDomainGetStatsMemoryBandwidth(driver, dom, params);
+    return 0;
 }


-- 
2.48.1




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux