From: Peter Krempa Date: Mon, 17 Feb 2025 12:55:08 +0000 (+0100) Subject: qemuDomainGetStatsMemoryBandwidth: Don't error out X-Git-Tag: v11.1.0-rc1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a0122665c6274163bd87355297bcc6a793875084;p=thirdparty%2Flibvirt.git qemuDomainGetStatsMemoryBandwidth: 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 memory bandwidth 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 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; }