]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lscpu: (topology) add read_configure()
authorKarel Zak <kzak@redhat.com>
Fri, 14 Aug 2020 10:13:38 +0000 (12:13 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 13 Nov 2020 08:19:02 +0000 (09:19 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/lscpu-api.h
sys-utils/lscpu-topology.c

index 3086d809353decc05f4bba026b03772a3fa02b2d..a4afd29643c14d78e68f76405ec439830d653d9f 100644 (file)
@@ -49,7 +49,6 @@ struct lscpu_cputype {
        int     dispatching;    /* -1 if not evailable, DIST_* */
        int     freqboost;      /* -1 if not evailable */
 
-       int     *configured;    /* cpu configured */
        int     physsockets;    /* Physical sockets (modules) */
        int     physchips;      /* Physical chips */
        int     physcoresperchip;       /* Physical cores per chip */
@@ -103,6 +102,7 @@ struct lscpu_cpu {
 
        int     polarization;   /* POLAR_* */
        int     address;        /* physical cpu address */
+       int     configured;     /* cpu configured */
 };
 
 struct lscpu_arch {
index 8450847bc9f3e1420ce5dde63a52a87d87f4cf81..379c5b3282381c1d784a178ea4727826cba6edb0 100644 (file)
@@ -245,6 +245,18 @@ static int read_address(struct lscpu_cxt *cxt, struct lscpu_cpu *cpu)
        return 0;
 }
 
+static int read_configure(struct lscpu_cxt *cxt, struct lscpu_cpu *cpu)
+{
+       struct path_cxt *sys = cxt->syscpu;
+       int num = cpu->logical_id;
+
+       if (ul_path_accessf(sys, F_OK, "cpu%d/configure", num) != 0)
+               return 0;
+
+       ul_path_readf_s32(sys, &cpu->configured, "cpu%d/configure", num);
+       return 0;
+}
+
 int lscpu_read_topology(struct lscpu_cxt *cxt)
 {
        size_t i;
@@ -264,6 +276,8 @@ int lscpu_read_topology(struct lscpu_cxt *cxt)
                        rc = read_polarization(cxt, cpu);
                if (!rc)
                        rc = read_address(cxt, cpu);
+               if (!rc)
+                       rc = read_configure(cxt, cpu);
        }
 
        return rc;