aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys-utils/lscpu-arm.c2
-rw-r--r--sys-utils/lscpu.c9
-rw-r--r--sys-utils/lscpu.h2
3 files changed, 11 insertions, 2 deletions
diff --git a/sys-utils/lscpu-arm.c b/sys-utils/lscpu-arm.c
index 9391cca549..9e259673c8 100644
--- a/sys-utils/lscpu-arm.c
+++ b/sys-utils/lscpu-arm.c
@@ -360,6 +360,8 @@ static void arm_decode(struct lscpu_cxt *cxt, struct lscpu_cputype *ct)
arm_ids_decode(ct);
arm_rXpY_decode(ct);
+ if (cxt->is_cluster)
+ ct->nr_socket_on_cluster = get_number_of_physical_sockets_from_dmi();
}
static int lscpu_is_cluster_arm(struct lscpu_cxt *cxt)
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 65016f08b7..729e3e1dc3 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -864,10 +864,15 @@ print_summary_cputype(struct lscpu_cxt *cxt,
} else
add_summary_n(tb, sec, _("Book(s):"), ct->nbooks_per_drawer ?: ct->nbooks);
} else {
- if (cxt->is_cluster)
+ if (cxt->is_cluster) {
+ if (ct->nr_socket_on_cluster > 0)
+ add_summary_n(tb, sec, _("Socket(s):"), ct->nr_socket_on_cluster);
+ else
+ add_summary_s(tb, sec, _("Socket(s):"), "-");
+
add_summary_n(tb, sec, _("Cluster(s):"),
ct->nsockets_per_book ?: ct->nsockets);
- else
+ } else
add_summary_n(tb, sec, _("Socket(s):"),
ct->nsockets_per_book ?: ct->nsockets);
}
diff --git a/sys-utils/lscpu.h b/sys-utils/lscpu.h
index 74c647e3a8..623c07998d 100644
--- a/sys-utils/lscpu.h
+++ b/sys-utils/lscpu.h
@@ -101,6 +101,8 @@ struct lscpu_cputype {
has_configured : 1,
has_polarization : 1,
has_addresses : 1;
+
+ size_t nr_socket_on_cluster; /* the number of sockets if the is_cluster is 1 */
};
/* dispatching modes */