From f42f105b07b25097f6c2eae3d6a3ccbc452cda5e Mon Sep 17 00:00:00 2001 From: Masayoshi Mizuma Date: Fri, 20 Nov 2020 00:06:09 -0500 Subject: [PATCH] lscpu: show the number of physical socket on aarch64 machine without ACPI PPTT Show the number of the number of physical socket even if the sysfs doesn't have the physical socket information. Note, lscpu shows the number of physical socket as 'Socket(s):' only if root user runs it because accessing the DMI table requires root privilege. Signed-off-by: Masayoshi Mizuma --- sys-utils/lscpu-arm.c | 2 ++ sys-utils/lscpu.c | 9 +++++++-- sys-utils/lscpu.h | 2 ++ 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 */ -- 2.47.3