Util-Linux package development
 help / color / mirror / Atom feed
From: Ruediger Meier <sweet_f_a@gmx.de>
To: util-linux@vger.kernel.org
Cc: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Subject: Re: [PATCH 2/2] lscpu: use cpu and revision tag if available
Date: Wed, 16 Mar 2016 08:57:26 +0100	[thread overview]
Message-ID: <201603160857.27047.sweet_f_a@gmx.de> (raw)
In-Reply-To: <1458055880-18766-2-git-send-email-sweet_f_a@gmx.de>

On Tuesday 15 March 2016, 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.
>
> CC: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
> Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
> ---
>  sys-utils/lscpu.c                             | 18
> +++++++++++++----- 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, 20 insertions(+), 8 deletions(-)
>
> diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
> index 423bc56..498234f 100644
> --- a/sys-utils/lscpu.c
> +++ b/sys-utils/lscpu.c
> @@ -453,6 +453,8 @@ read_basicinfo(struct lscpu_desc *desc, struct
> lscpu_modifier *mod) char buf[BUFSIZ];
>  	struct utsname utsbuf;
>  	size_t setsize;
> +	char *cpu = 0;
> +	char *revision = 0;
>
>  	/* architecture */
>  	if (uname(&utsbuf) == -1)
> @@ -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,10 +476,21 @@ 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", &cpu)) ;          /*
> modelname, ppc, sparc*/ +		else if (lookup(buf, "revision",
> &revision)) ;/* model, ppc */ else
>  			continue;
>  	}
>
> +	if (cpu) {
> +		free(desc->modelname);
> +		desc->modelname = cpu;
> +	}
> +	if (revision) {
> +		free(desc->model);
> +		desc->model = revision;
> +	}
> +

Watching this again today I think it could be even better to add cpu and 
revision members to the struct and move both if conditions to the 
printing code section.

It would avoid the small risk to break other logic like this one:
  if (desc->modelname && strstr(desc->modelname, "UML")) { ...

>  	desc->mode = init_mode(mod);
>
>  	if (desc->flags) {
> 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



  parent reply	other threads:[~2016-03-16  7:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-15 15:31 [PATCH 1/2] Revert "lscpu: keep lscpu usable on snapshots" Ruediger Meier
2016-03-15 15:31 ` [PATCH 2/2] lscpu: use cpu and revision tag if available Ruediger Meier
2016-03-16  5:35   ` Vasant Hegde
2016-03-16  7:57   ` Ruediger Meier [this message]
2016-03-16  9:37     ` Karel Zak
2016-03-16 10:23       ` Ruediger Meier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201603160857.27047.sweet_f_a@gmx.de \
    --to=sweet_f_a@gmx.de \
    --cc=hegdevasant@linux.vnet.ibm.com \
    --cc=util-linux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox