From nobody Wed Feb 11 10:06:09 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1490882671150240.88690104654654; Thu, 30 Mar 2017 07:04:31 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A49898A054; Thu, 30 Mar 2017 14:04:29 +0000 (UTC) Received: from colo-mx.corp.redhat.com (unknown [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7B18051C8D; Thu, 30 Mar 2017 14:04:29 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 37DB25ED70; Thu, 30 Mar 2017 14:04:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2UE4I0k027601 for ; Thu, 30 Mar 2017 10:04:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2FC225C897; Thu, 30 Mar 2017 14:04:18 +0000 (UTC) Received: from caroline.brq.redhat.com (dhcp129-198.brq.redhat.com [10.34.129.198]) by smtp.corp.redhat.com (Postfix) with ESMTP id A675A8765E for ; Thu, 30 Mar 2017 14:04:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A49898A054 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A49898A054 From: Martin Kletzander To: libvir-list@redhat.com Date: Thu, 30 Mar 2017 16:03:42 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 10/16] util: Add virSysfsGetCPUCache* functions X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Thu, 30 Mar 2017 14:04:30 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Martin Kletzander --- 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) +{ + char *path =3D NULL; + int ret =3D -1; + + if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s", + sysfs_system_path, cpu, cache, file) < 0) + return -1; + + ret =3D virFileReadValueInt(path, value); + + VIR_FREE(path); + return ret; +} + + +int +virSysfsGetCpuCacheValueUint(unsigned int cpu, + const char *cache, + const char *file, + unsigned int *value) +{ + char *path =3D NULL; + int ret =3D -1; + + if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s", + sysfs_system_path, cpu, cache, file) < 0) + return -1; + + ret =3D virFileReadValueUint(path, value); + + VIR_FREE(path); + return ret; +} + +int +virSysfsGetCpuCacheValueScaledInt(unsigned int cpu, + const char *cache, + const char *file, + unsigned long long *value) +{ + char *path =3D NULL; + int ret =3D -1; + + if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s", + sysfs_system_path, cpu, cache, file) < 0) + return -1; + + ret =3D virFileReadValueScaledInt(path, value); + + VIR_FREE(path); + return ret; +} + + +int +virSysfsGetCpuCacheValueString(unsigned int cpu, + const char *cache, + const char *file, + char **value) +{ + char *path =3D NULL; + int ret =3D -1; + + if (virAsprintf(&path, "cpu/cpu%u/cache/%s/%s", cpu, cache, file) < 0) + return -1; + + ret =3D virSysfsGetValueString(path, value); + + VIR_FREE(path); + return ret; +} + +int +virSysfsGetCpuCacheValueBitmap(unsigned int cpu, + const char *cache, + const char *file, + virBitmapPtr *value) +{ + char *path =3D NULL; + int ret =3D -1; + + if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s", + sysfs_system_path, cpu, cache, file) < 0) + return -1; + + ret =3D 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 --=20 2.12.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list