Re: [PATCH 10/16] util: Add virSysfsGetCPUCache* functions

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

 




On Thursday, 30 March 2017 at 10:03 PM, Martin Kletzander wrote:

Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx>
---
src/libvirt_private.syms | 5 +++
src/util/virsysfs.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++
src/util/virsysfs.h | 34 ++++++++++++++++
3 files changed, 141 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index bcd2506ef7c9..0b3b41516fe6 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2623,6 +2623,11 @@ virVasprintfInternal;
# util/virsysfs.h
virSysfsCpuDirOpen;
virSysfsDirOpen;
+virSysfsGetCpuCacheValueBitmap;
+virSysfsGetCpuCacheValueInt;
+virSysfsGetCpuCacheValueScaledInt;
+virSysfsGetCpuCacheValueString;
+virSysfsGetCpuCacheValueUint;
virSysfsGetCpuValueBitmap;
virSysfsGetCpuValueInt;
virSysfsGetCpuValueString;
diff --git a/src/util/virsysfs.c b/src/util/virsysfs.c
index a8550bbfbc26..2a64be4f5f73 100644
--- a/src/util/virsysfs.c
+++ b/src/util/virsysfs.c
@@ -221,6 +221,108 @@ virSysfsCpuDirOpen(unsigned int cpu,
}


+/*
+ * Per-CPU/cache getters
+ */
+int
+virSysfsGetCpuCacheValueInt(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ int *value)

It will be helpful that we describe what cache, file looks like
even it’s straight enough to reading code.
+{
+ char *path = NULL;
+ int ret = -1;
+
+ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",

cpu/cpu0/cache/index3/size
 
+ sysfs_system_path, cpu, cache, file) < 0)
+ return -1;
+
+ ret = virFileReadValueInt(path, value);
+
+ VIR_FREE(path);
+ return ret;
+}
+
+
+int
+virSysfsGetCpuCacheValueUint(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ unsigned int *value)
+{
+ char *path = NULL;
+ int ret = -1;
+
+ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",
+ sysfs_system_path, cpu, cache, file) < 0)
+ return -1;
+
+ ret = virFileReadValueUint(path, value);
+
+ VIR_FREE(path);
+ return ret;
+}
+
+int
+virSysfsGetCpuCacheValueScaledInt(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ unsigned long long *value)

Can we add notes here to tell the value is in unite KiB ?
 
+{
+ char *path = NULL;
+ int ret = -1;
+
+ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",
+ sysfs_system_path, cpu, cache, file) < 0)
+ return -1;
+
+ ret = virFileReadValueScaledInt(path, value);
+
+ VIR_FREE(path);
+ return ret;
+}
+
+
+int
+virSysfsGetCpuCacheValueString(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ char **value)
+{
+ char *path = NULL;
+ int ret = -1;
+
+ if (virAsprintf(&path, "cpu/cpu%u/cache/%s/%s", cpu, cache, file) < 0)
+ return -1;
+
+ ret = virSysfsGetValueString(path, value);
+
+ VIR_FREE(path);
+ return ret;
+}
+
+int
+virSysfsGetCpuCacheValueBitmap(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ virBitmapPtr *value)
+{
+ char *path = NULL;
+ int ret = -1;
+
+ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",
+ sysfs_system_path, cpu, cache, file) < 0)
+ return -1;
+
+ ret = virFileReadValueBitmap(path, VIR_SYSFS_VALUE_MAXLEN, value);
+ VIR_FREE(path);
+ return ret;
+}
+
+
+/*
+ * Per-NUMA node getters
+ */
int
virSysfsGetNodeValueString(unsigned int node,
const char *file,
diff --git a/src/util/virsysfs.h b/src/util/virsysfs.h
index 25bd100ea9cb..92f9111b069f 100644
--- a/src/util/virsysfs.h
+++ b/src/util/virsysfs.h
@@ -77,6 +77,40 @@ virSysfsCpuDirOpen(unsigned int cpu,


/*
+ * Per-CPU/cache getters
+ */
+int
+virSysfsGetCpuCacheValueInt(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ int *value);
+
+int
+virSysfsGetCpuCacheValueUint(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ unsigned int *value);
+
+int
+virSysfsGetCpuCacheValueScaledInt(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ unsigned long long *value);
+
+int
+virSysfsGetCpuCacheValueString(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ char **value);
+
+int
+virSysfsGetCpuCacheValueBitmap(unsigned int cpu,
+ const char *cache,
+ const char *file,
+ virBitmapPtr *value);
+
+
+/*
* Per-NUMA node getters
*/
int
--
2.12.2

--
libvir-list mailing list

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[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