Util-Linux package development
 help / color / mirror / Atom feed
* [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems
@ 2016-03-16 12:18 Ruediger Meier
  2016-03-16 12:18 ` [PATCH 1/3] Revert "lscpu: keep lscpu usable on snapshots" Ruediger Meier
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Ruediger Meier @ 2016-03-16 12:18 UTC (permalink / raw)
  To: util-linux

From: Ruediger Meier <ruediger.meier@ga-group.nl>

As discussed the new logic moved to the print sections. Plus fix for a
memory leak.

Ruediger Meier (3):
  Revert "lscpu: keep lscpu usable on snapshots"
  lscpu: use cpu and revision tag if available
  lscpu: fix memleak because of ambiguous tags

 sys-utils/lscpu.c                             | 35 +++++++++------------------
 tests/expected/lscpu/lscpu-ppc-qemu           |  3 ++-
 tests/expected/lscpu/lscpu-ppc64-POWER7       |  3 ++-
 tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu |  3 ++-
 tests/expected/lscpu/lscpu-sparc64            |  1 +
 tests/expected/lscpu/lscpu-x86_64-64cpu       |  2 +-
 tests/expected/lscpu/lscpu-x86_64-dell_e4310  |  2 +-
 7 files changed, 21 insertions(+), 28 deletions(-)

-- 
1.8.4.5


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] Revert "lscpu: keep lscpu usable on snapshots"
  2016-03-16 12:18 [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Ruediger Meier
@ 2016-03-16 12:18 ` Ruediger Meier
  2016-03-16 12:18 ` [PATCH 2/3] lscpu: use cpu and revision tag if available Ruediger Meier
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Ruediger Meier @ 2016-03-16 12:18 UTC (permalink / raw)
  To: util-linux

From: Ruediger Meier <ruediger.meier@ga-group.nl>

This reverts commit 641350fe822e7f1ac10873dad9a364bdeaba8083.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
---
 sys-utils/lscpu.c | 25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 8e62c64..423bc56 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -453,36 +453,25 @@ read_basicinfo(struct lscpu_desc *desc, struct lscpu_modifier *mod)
 	char buf[BUFSIZ];
 	struct utsname utsbuf;
 	size_t setsize;
-	int overwrite_model = 0;
 
 	/* architecture */
 	if (uname(&utsbuf) == -1)
 		err(EXIT_FAILURE, _("error: uname failed"));
 	desc->arch = xstrdup(utsbuf.machine);
 
-	/* Use another records from cpuinfo for PPC, on snapshot follow
-	 * standard behavior.
-	 *
-	 * TODO: use runtime detection to make model overwrite possible on
-	 *       snapshots too.
-	 */
-#if defined(__powerpc__) || defined(__powerpc64__)
-	if (mod->system == SYSTEM_LIVE)
-		overwrite_model = 1;
-#endif
 	/* details */
 	while (fgets(buf, sizeof(buf), fp) != NULL) {
 		if (lookup(buf, "vendor", &desc->vendor)) ;
 		else if (lookup(buf, "vendor_id", &desc->vendor)) ;
 		else if (lookup(buf, "family", &desc->family)) ;
 		else if (lookup(buf, "cpu family", &desc->family)) ;
-
-		else if (overwrite_model && lookup(buf, "revision", &desc->model)) ;
-		else if (overwrite_model && lookup(buf, "cpu", &desc->modelname)) ;
-
-		else if (!overwrite_model && lookup(buf, "model", &desc->model)) ;
-		else if (!overwrite_model && lookup(buf, "model name", &desc->modelname)) ;
-
+#if defined(__powerpc__) || defined(__powerpc64__)
+		else if (lookup(buf, "revision", &desc->model)) ;
+		else if (lookup(buf, "cpu", &desc->modelname)) ;
+#else
+		else if (lookup(buf, "model", &desc->model)) ;
+		else if (lookup(buf, "model name", &desc->modelname)) ;
+#endif
 		else if (lookup(buf, "stepping", &desc->stepping)) ;
 		else if (lookup(buf, "cpu MHz", &desc->mhz)) ;
 		else if (lookup(buf, "flags", &desc->flags)) ;		/* x86 */
-- 
1.8.4.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] lscpu: use cpu and revision tag if available
  2016-03-16 12:18 [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Ruediger Meier
  2016-03-16 12:18 ` [PATCH 1/3] Revert "lscpu: keep lscpu usable on snapshots" Ruediger Meier
@ 2016-03-16 12:18 ` Ruediger Meier
  2016-03-18  5:32   ` Vasant Hegde
  2016-03-16 12:18 ` [PATCH 3/3] lscpu: fix memleak because of ambiguous tags Ruediger Meier
  2016-03-16 13:18 ` [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Karel Zak
  3 siblings, 1 reply; 6+ messages in thread
From: Ruediger Meier @ 2016-03-16 12:18 UTC (permalink / raw)
  To: util-linux; +Cc: Vasant Hegde

From: Ruediger Meier <ruediger.meier@ga-group.nl>

Avoid ifdef which does not work with --sysroot. Our existing test
dumps produce even better output now for ppc and sparc.

The logic moved to the printing section.

CC: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
---
 sys-utils/lscpu.c                             | 17 ++++++++---------
 tests/expected/lscpu/lscpu-ppc-qemu           |  3 ++-
 tests/expected/lscpu/lscpu-ppc64-POWER7       |  3 ++-
 tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu |  3 ++-
 tests/expected/lscpu/lscpu-sparc64            |  1 +
 5 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 423bc56..3b338aa 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -191,6 +191,8 @@ struct lscpu_desc {
 	char	*family;
 	char	*model;
 	char	*modelname;
+	char	*revision;  /* alternative for model (ppc) */
+	char	*cpu;       /* alternative for modelname (ppc, sparc) */
 	char	*virtflag;	/* virtualization flag (vmx, svm) */
 	char	*hypervisor;	/* hypervisor software */
 	int	hyper;		/* hypervisor vendor ID */
@@ -465,13 +467,8 @@ read_basicinfo(struct lscpu_desc *desc, struct lscpu_modifier *mod)
 		else if (lookup(buf, "vendor_id", &desc->vendor)) ;
 		else if (lookup(buf, "family", &desc->family)) ;
 		else if (lookup(buf, "cpu family", &desc->family)) ;
-#if defined(__powerpc__) || defined(__powerpc64__)
-		else if (lookup(buf, "revision", &desc->model)) ;
-		else if (lookup(buf, "cpu", &desc->modelname)) ;
-#else
 		else if (lookup(buf, "model", &desc->model)) ;
 		else if (lookup(buf, "model name", &desc->modelname)) ;
-#endif
 		else if (lookup(buf, "stepping", &desc->stepping)) ;
 		else if (lookup(buf, "cpu MHz", &desc->mhz)) ;
 		else if (lookup(buf, "flags", &desc->flags)) ;		/* x86 */
@@ -479,6 +476,8 @@ read_basicinfo(struct lscpu_desc *desc, struct lscpu_modifier *mod)
 		else if (lookup(buf, "type", &desc->flags)) ;		/* sparc64 */
 		else if (lookup(buf, "bogomips", &desc->bogomips)) ;
 		else if (lookup(buf, "bogomips per cpu", &desc->bogomips)) ; /* s390 */
+		else if (lookup(buf, "cpu", &desc->cpu)) ;
+		else if (lookup(buf, "revision", &desc->revision)) ;
 		else
 			continue;
 	}
@@ -1649,10 +1648,10 @@ print_summary(struct lscpu_desc *desc, struct lscpu_modifier *mod)
 		print_s(_("Vendor ID:"), desc->vendor);
 	if (desc->family)
 		print_s(_("CPU family:"), desc->family);
-	if (desc->model)
-		print_s(_("Model:"), desc->model);
-	if (desc->modelname)
-		print_s(_("Model name:"), desc->modelname);
+	if (desc->model || desc->revision)
+		print_s(_("Model:"), desc->revision ? desc->revision : desc->model);
+	if (desc->modelname || desc->cpu)
+		print_s(_("Model name:"), desc->cpu ? desc->cpu : desc->modelname);
 	if (desc->stepping)
 		print_s(_("Stepping:"), desc->stepping);
 	if (desc->mhz)
diff --git a/tests/expected/lscpu/lscpu-ppc-qemu b/tests/expected/lscpu/lscpu-ppc-qemu
index b3ea4a7..78b0b29 100644
--- a/tests/expected/lscpu/lscpu-ppc-qemu
+++ b/tests/expected/lscpu/lscpu-ppc-qemu
@@ -3,7 +3,8 @@ On-line CPU(s) list:   0
 Thread(s) per core:    1
 Core(s) per socket:    1
 Socket(s):             1
-Model:                 Power Macintosh
+Model:                 3.1 (pvr 0008 0301)
+Model name:            740/750
 BogoMIPS:              33.25
 L1d cache:             unknown size
 L1i cache:             unknown size
diff --git a/tests/expected/lscpu/lscpu-ppc64-POWER7 b/tests/expected/lscpu/lscpu-ppc64-POWER7
index 0d6c5ba..9a3c0c9 100644
--- a/tests/expected/lscpu/lscpu-ppc64-POWER7
+++ b/tests/expected/lscpu/lscpu-ppc64-POWER7
@@ -4,7 +4,8 @@ Thread(s) per core:    4
 Core(s) per socket:    1
 Socket(s):             4
 NUMA node(s):          1
-Model:                 IBM,8233-E8B
+Model:                 2.1 (pvr 003f 0201)
+Model name:            POWER7 (architected), altivec supported
 L1d cache:             32K
 L1i cache:             32K
 NUMA node0 CPU(s):     0-15
diff --git a/tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu b/tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu
index e48735e..0aed12a 100644
--- a/tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu
+++ b/tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu
@@ -4,7 +4,8 @@ Thread(s) per core:    4
 Core(s) per socket:    1
 Socket(s):             16
 NUMA node(s):          2
-Model:                 IBM,8231-E2B
+Model:                 2.1 (pvr 003f 0201)
+Model name:            POWER7 (architected), altivec supported
 Hypervisor vendor:     pHyp
 Virtualization type:   para
 L1d cache:             32K
diff --git a/tests/expected/lscpu/lscpu-sparc64 b/tests/expected/lscpu/lscpu-sparc64
index 629b399..aacaf11 100644
--- a/tests/expected/lscpu/lscpu-sparc64
+++ b/tests/expected/lscpu/lscpu-sparc64
@@ -4,6 +4,7 @@ On-line CPU(s) list:   6,7,10,11,14,15
 Thread(s) per core:    1
 Core(s) per socket:    1
 Socket(s):             6
+Model name:            TI UltraSparc II  (BlackBird)
 Flags:                 sun4u
 
 # The following is the parsable format, which can be fed to other
-- 
1.8.4.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] lscpu: fix memleak because of ambiguous tags
  2016-03-16 12:18 [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Ruediger Meier
  2016-03-16 12:18 ` [PATCH 1/3] Revert "lscpu: keep lscpu usable on snapshots" Ruediger Meier
  2016-03-16 12:18 ` [PATCH 2/3] lscpu: use cpu and revision tag if available Ruediger Meier
@ 2016-03-16 12:18 ` Ruediger Meier
  2016-03-16 13:18 ` [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Karel Zak
  3 siblings, 0 replies; 6+ messages in thread
From: Ruediger Meier @ 2016-03-16 12:18 UTC (permalink / raw)
  To: util-linux

From: Ruediger Meier <ruediger.meier@ga-group.nl>

Now the first one of certain ambiguous tags wins. Alternatively to
this patch we could have called free() before xstrdup().

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
---
 sys-utils/lscpu.c                            | 3 ++-
 tests/expected/lscpu/lscpu-x86_64-64cpu      | 2 +-
 tests/expected/lscpu/lscpu-x86_64-dell_e4310 | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 3b338aa..36e36c9 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -353,7 +353,8 @@ lookup(char *line, char *pattern, char **value)
 	char *p, *v;
 	int len = strlen(pattern);
 
-	if (!*line)
+	/* don't re-fill already found tags, first one wins */
+	if (!*line || *value)
 		return 0;
 
 	/* pattern */
diff --git a/tests/expected/lscpu/lscpu-x86_64-64cpu b/tests/expected/lscpu/lscpu-x86_64-64cpu
index 17350e3..07990ea 100644
--- a/tests/expected/lscpu/lscpu-x86_64-64cpu
+++ b/tests/expected/lscpu/lscpu-x86_64-64cpu
@@ -13,7 +13,7 @@ Stepping:              6
 CPU MHz:               1064.000
 CPU max MHz:           1996.0000
 CPU min MHz:           1064.0000
-BogoMIPS:              3989.44
+BogoMIPS:              3990.31
 Virtualization:        VT-x
 L1d cache:             32K
 L1i cache:             32K
diff --git a/tests/expected/lscpu/lscpu-x86_64-dell_e4310 b/tests/expected/lscpu/lscpu-x86_64-dell_e4310
index 929cdf9..39ec32c 100644
--- a/tests/expected/lscpu/lscpu-x86_64-dell_e4310
+++ b/tests/expected/lscpu/lscpu-x86_64-dell_e4310
@@ -13,7 +13,7 @@ Stepping:              5
 CPU MHz:               1199.000
 CPU max MHz:           2667.0000
 CPU min MHz:           1199.0000
-BogoMIPS:              5319.97
+BogoMIPS:              5319.92
 Virtualization:        VT-x
 L1d cache:             32K
 L1i cache:             32K
-- 
1.8.4.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems
  2016-03-16 12:18 [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Ruediger Meier
                   ` (2 preceding siblings ...)
  2016-03-16 12:18 ` [PATCH 3/3] lscpu: fix memleak because of ambiguous tags Ruediger Meier
@ 2016-03-16 13:18 ` Karel Zak
  3 siblings, 0 replies; 6+ messages in thread
From: Karel Zak @ 2016-03-16 13:18 UTC (permalink / raw)
  To: Ruediger Meier; +Cc: util-linux

On Wed, Mar 16, 2016 at 01:18:16PM +0100, Ruediger Meier wrote:
>  sys-utils/lscpu.c                             | 35 +++++++++------------------
>  tests/expected/lscpu/lscpu-ppc-qemu           |  3 ++-
>  tests/expected/lscpu/lscpu-ppc64-POWER7       |  3 ++-
>  tests/expected/lscpu/lscpu-ppc64-POWER7-64cpu |  3 ++-
>  tests/expected/lscpu/lscpu-sparc64            |  1 +
>  tests/expected/lscpu/lscpu-x86_64-64cpu       |  2 +-
>  tests/expected/lscpu/lscpu-x86_64-dell_e4310  |  2 +-
>  7 files changed, 21 insertions(+), 28 deletions(-)

 Applied, thanks!

    Karel

-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] lscpu: use cpu and revision tag if available
  2016-03-16 12:18 ` [PATCH 2/3] lscpu: use cpu and revision tag if available Ruediger Meier
@ 2016-03-18  5:32   ` Vasant Hegde
  0 siblings, 0 replies; 6+ messages in thread
From: Vasant Hegde @ 2016-03-18  5:32 UTC (permalink / raw)
  To: Ruediger Meier, util-linux

On 03/16/2016 05:48 PM, Ruediger Meier wrote:
> From: Ruediger Meier <ruediger.meier@ga-group.nl>
>
> Avoid ifdef which does not work with --sysroot. Our existing test
> dumps produce even better output now for ppc and sparc.
>
> The logic moved to the printing section.
>
> CC: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
> Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>

Looks good. Tested on Power8 system and it works fine.

-Vasant


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-18  5:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-16 12:18 [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Ruediger Meier
2016-03-16 12:18 ` [PATCH 1/3] Revert "lscpu: keep lscpu usable on snapshots" Ruediger Meier
2016-03-16 12:18 ` [PATCH 2/3] lscpu: use cpu and revision tag if available Ruediger Meier
2016-03-18  5:32   ` Vasant Hegde
2016-03-16 12:18 ` [PATCH 3/3] lscpu: fix memleak because of ambiguous tags Ruediger Meier
2016-03-16 13:18 ` [PATCH v2 0/3] lscpu: Fix model and model name on Power Systems Karel Zak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox