From a0122665c6274163bd87355297bcc6a793875084 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 17 Feb 2025 13:55:08 +0100 Subject: [PATCH] qemuDomainGetStatsMemoryBandwidth: 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 memory bandwidth 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 | 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.47.3