All the mail mirrored from lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.