All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn@suse.de>
To: Palmer Cox <p@lmercox.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/6] cpupower tools: Fix warning and a bug with the cpu package count
Date: Thu, 9 Aug 2012 12:07:36 +0200	[thread overview]
Message-ID: <201208091207.36846.trenn@suse.de> (raw)
In-Reply-To: <1344306288-12369-7-git-send-email-p@lmercox.com>

On Tuesday 07 August 2012 04:24:48 Palmer Cox wrote:
> The pkgs member of cpupower_topology is being used as the number of
> cpu packages. As the comment in get_cpu_topology notes, the package ids
> are not guaranteed to be contiguous. So, simply setting pkgs to the value
> of the highest physical_package_id doesn't actually provide a count of
> the number of cpu packages. Instead, calculate pkgs by setting it to
> the number of distinct physical_packge_id values which is pretty easy
> to do after the core_info structs are sorted. Calculating pkgs this
> way also has the nice benefit of getting rid of a sign comparison warning
> that GCC 4.6 was reporting.
> ---
>  tools/power/cpupower/utils/helpers/topology.c |   18 +++++++++++++-----
>  1 file changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/power/cpupower/utils/helpers/topology.c b/tools/power/cpupower/utils/helpers/topology.c
> index 4e2b583..fd3cc4d 100644
> --- a/tools/power/cpupower/utils/helpers/topology.c
> +++ b/tools/power/cpupower/utils/helpers/topology.c
> @@ -64,7 +64,7 @@ static int __compare(const void *t1, const void *t2)
>   */
>  int get_cpu_topology(struct cpupower_topology *cpu_top)
>  {
> -	int cpu, cpus = sysconf(_SC_NPROCESSORS_CONF);
> +	int cpu, last_pkg, cpus = sysconf(_SC_NPROCESSORS_CONF);
>  
>  	cpu_top->core_info = malloc(sizeof(struct cpuid_core_info) * cpus);
>  	if (cpu_top->core_info == NULL)
> @@ -78,20 +78,28 @@ int get_cpu_topology(struct cpupower_topology *cpu_top)
>  			"physical_package_id",
>  			&(cpu_top->core_info[cpu].pkg)) < 0)
>  			return -1;
> -		if ((int)cpu_top->core_info[cpu].pkg != -1 &&
> -		    cpu_top->core_info[cpu].pkg > cpu_top->pkgs)
> -			cpu_top->pkgs = cpu_top->core_info[cpu].pkg;
>  		if(sysfs_topology_read_file(
>  			cpu,
>  			"core_id",
>  			&(cpu_top->core_info[cpu].core)) < 0)
>  			return -1;
>  	}
> -	cpu_top->pkgs++;
>  
>  	qsort(cpu_top->core_info, cpus, sizeof(struct cpuid_core_info),
>  	      __compare);
>  
> +	/* Count the number of distinct pkgs values. This works
> +	   becuase the primary sort of of the core_info structs was just
becuase ... of of ... struct instead of structs

Otherwise the first 4 patches look like rather nice and straight forward
cleanups/fixes.
Feel free to add a Reviewed-by: Thomas Renninger <trenn@suse.de>

Let me have a closer look at patch 5 and 6. I had problems getting rid of
the compiler warning, looks like you found an easy way to clean this up.
I will be back and have time for this in the beginning of next week.

On which platforms (topology) did you test this?

   Thomas

  reply	other threads:[~2012-08-09 10:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-07  2:24 [PATCH 0/6] cpupower tools: Fix minor bugs and warnings Palmer Cox
2012-08-07  2:24 ` [PATCH 1/6] cpupower tools: Remove brace expansion from clean target Palmer Cox
2012-08-07  2:24 ` [PATCH 2/6] cpupower tools: Update .gitignore for files created in the debug directories Palmer Cox
2012-08-07  2:24 ` [PATCH 3/6] cpupower tools: Fix minor warnings Palmer Cox
2012-08-07  2:24 ` [PATCH 4/6] cpupower tools: Fix issues with sysfs_topology_read_file Palmer Cox
2012-08-07  2:24 ` [PATCH 5/6] cpupower tools: Fix malloc of cpu_info structure Palmer Cox
2012-08-07  2:24 ` [PATCH 6/6] cpupower tools: Fix warning and a bug with the cpu package count Palmer Cox
2012-08-09 10:07   ` Thomas Renninger [this message]
2012-08-10  2:58     ` Palmer Cox

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=201208091207.36846.trenn@suse.de \
    --to=trenn@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=p@lmercox.com \
    /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 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.