diff --git a/src/nodeinfo.c b/src/nodeinfo.c index 409f922ba8..34de7203dc 100644 --- a/src/nodeinfo.c +++ b/src/nodeinfo.c @@ -1249,19 +1249,20 @@ nodeGetCPUCount(const char *sysfs_prefix ATTRIBUTE_UNUSED) } virBitmapPtr -nodeGetPresentCPUBitmap(void) +nodeGetPresentCPUBitmap(const char *sysfs_prefix) { int max_present; #ifdef __linux__ char *present_path = NULL; virBitmapPtr bitmap = NULL; #endif + const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SYSTEM_PATH; - if ((max_present = nodeGetCPUCount(NULL)) < 0) + if ((max_present = nodeGetCPUCount(prefix)) < 0) return NULL; #ifdef __linux__ - if (!(present_path = linuxGetCPUPresentPath(NULL))) + if (!(present_path = linuxGetCPUPresentPath(prefix))) return NULL; if (virFileExists(present_path)) bitmap = linuxParseCPUmap(max_present, present_path); diff --git a/src/nodeinfo.h b/src/nodeinfo.h index 4f9699ea7a..3ef206b173 100644 --- a/src/nodeinfo.h +++ b/src/nodeinfo.h @@ -43,7 +43,7 @@ int nodeGetCellsFreeMemory(unsigned long long *freeMems, int nodeGetMemory(unsigned long long *mem, unsigned long long *freeMem); -virBitmapPtr nodeGetPresentCPUBitmap(void); +virBitmapPtr nodeGetPresentCPUBitmap(const char *sysfs_prefix); virBitmapPtr nodeGetCPUBitmap(int *max_id); int nodeGetCPUCount(const char *sysfs_prefix); diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index cbe0234b4e..0ef2d29626 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -3043,7 +3043,7 @@ virCgroupGetPercpuStats(virCgroupPtr group, } /* To parse account file, we need to know how many cpus are present. */ - if (!(cpumap = nodeGetPresentCPUBitmap())) + if (!(cpumap = nodeGetPresentCPUBitmap(NULL))) return rv; total_cpus = virBitmapSize(cpumap);