From: Peter Krempa Date: Mon, 17 Feb 2025 12:55:08 +0000 (+0100) Subject: qemuDomainGetStatsCpuCache: Don't error out X-Git-Tag: v11.1.0-rc1~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4c0c6fd9f5891e76c64c45395ea2229c7dc3d8c;p=thirdparty%2Flibvirt.git qemuDomainGetStatsCpuCache: 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 cache 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 e2db449a7a..efb6e2c454 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -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);