From: Masayoshi Mizuma Date: Fri, 20 Nov 2020 05:06:09 +0000 (-0500) Subject: lscpu: show the number of physical socket on aarch64 machine without ACPI PPTT X-Git-Tag: v2.37-rc1~279 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f42f105b07b25097f6c2eae3d6a3ccbc452cda5e;p=thirdparty%2Futil-linux.git 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 --- 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 */