All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kristen Carlson Accardi <kristen at linux.intel.com>
To: powertop@lists.01.org
Subject: Re: [Powertop] [PATCH] V2: Fix C states and P states presentation issue.
Date: Thu, 31 Jan 2013 15:39:27 -0800	[thread overview]
Message-ID: <20130131153927.7a7e1aca@bluebird.jf.intel.com> (raw)
In-Reply-To: 1358855012-23798-1-git-send-email-zhang.austin@gmail.com

[-- Attachment #1: Type: text/plain, Size: 3108 bytes --]

On Tue, 22 Jan 2013 19:43:32 +0800
Austin Zhang <zhang.austin(a)gmail.com> wrote:

> If using '10' in this 'for' loop, for P states, once the processor
> provides more than 10 P states, those additional ones cannot been
> presented; and for C states, once the processor provides maximize
> C states level more than 9, for example, it only has POLL, C1, C3,
> C6, C10, the additional one like C10 also cannot be presented.
> 
> Now we get the loop numbers from the system information we had got
> before.
> 
> Changes from V1:
> Using std:max to simplify codes
> 
> Signed-off-by: Austin Zhang <zhang.austin(a)gmail.com>
> ---
>  src/cpu/cpu.cpp |   36 +++++++++++++++++++++++++++++-------
>  1 files changed, 29 insertions(+), 7 deletions(-)
> 
> diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
> index 7f3af69..1bae255 100644
> --- a/src/cpu/cpu.cpp
> +++ b/src/cpu/cpu.cpp
> @@ -402,8 +402,16 @@ void report_display_cpu_cstates(void)
>  {
>  	char buffer[512], buffer2[512];
>  	unsigned int package, core, cpu;
> -	int line;
> +	int line, cstates_num;
>  	class abstract_cpu *_package, * _core, * _cpu;
> +	unsigned int i, j;
> +
> +	for (i = 0, cstates_num = 0; i < all_cpus.size(); i++) {
> +		if (all_cpus[i])
> +			for (j = 0; j < all_cpus[i]->cstates.size();
> j++)
> +				cstates_num = std::max(cstates_num,
> +
> (all_cpus[i]->cstates[j])->line_level);
> +	}
>  
>  	report.begin_section(SECTION_CPUIDLE);
>  	report.add_header("Processor Idle state report");
> @@ -421,7 +429,7 @@ void report_display_cpu_cstates(void)
>  			if (!_core)
>  				continue;
>  
> -			for (line = LEVEL_HEADER; line < 10; line++)
> {
> +			for (line = LEVEL_HEADER; line <=
> cstates_num; line++) { bool first_cpu = true;
>  
>  				if
> (!_package->has_cstate_level(line)) @@ -628,14 +636,29 @@ void
> impl_w_display_cpu_states(int state) char buffer[128];
>  	char linebuf[1024];
>  	unsigned int package, core, cpu;
> -	int line;
> +	int line, loop, cstates_num, pstates_num;
>  	class abstract_cpu *_package, * _core, * _cpu;
>  	int ctr = 0;
> +	unsigned int i, j;
> +
> +	for (i = 0, cstates_num = 0, pstates_num = 0; i <
> all_cpus.size(); i++) {
> +		if (!all_cpus[i])
> +			continue;
>  
> -	if (state == PSTATE)
> +		pstates_num = std::max<int>(pstates_num,
> all_cpus[i]->pstates.size()); +
> +		for (j = 0; j < all_cpus[i]->cstates.size(); j++)
> +			cstates_num = std::max(cstates_num,
> +
> (all_cpus[i]->cstates[j])->line_level);
> +	}
> +
> +	if (state == PSTATE) {
>  		win = get_ncurses_win("Frequency stats");
> -	else
> +		loop = pstates_num;
> +	} else {
>  		win = get_ncurses_win("Idle stats");
> +		loop = cstates_num;
> +	}
>  
>  	if (!win)
>  		return;
> @@ -656,8 +679,7 @@ void impl_w_display_cpu_states(int state)
>  			if (!_core->has_pstates() && state == PSTATE)
>  				continue;
>  
> -
> -			for (line = LEVEL_HEADER; line < 10; line++)
> {
> +			for (line = LEVEL_HEADER; line <= loop;
> line++) { int first = 1;
>  				ctr = 0;
>  				linebuf[0] = 0;

Applied, thanks.

Kristen

             reply	other threads:[~2013-01-31 23:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-31 23:39 Kristen Carlson Accardi [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-02-02 22:11 [Powertop] [PATCH] V2: Fix C states and P states presentation issue Paul Menzel
2013-01-23 14:57 Igor Zhbanov
2013-01-22 17:09 Sergey Senozhatsky
2013-01-22 17:07 Sergey Senozhatsky
2013-01-22 11:43 Austin Zhang

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=20130131153927.7a7e1aca@bluebird.jf.intel.com \
    --to=powertop@lists.01.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 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.