All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky at gmail.com>
To: powertop@lists.01.org
Subject: Re: [Powertop] [PATCH] V2: Fix C states and P states presentation issue.
Date: Tue, 22 Jan 2013 20:09:26 +0300	[thread overview]
Message-ID: <20130122170926.GB2320@swordfish> (raw)
In-Reply-To: 1358855012-23798-1-git-send-email-zhang.austin@gmail.com

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

On (01/22/13 19:43), Austin Zhang wrote:
> Date: Tue, 22 Jan 2013 19:43:32 +0800
> From: Austin Zhang <zhang.austin(a)gmail.com>
> To: powertop(a)lists.01.org
> Subject: [Powertop] [PATCH] V2: Fix C states and P states presentation
>  issue.
> X-Mailer: git-send-email 1.7.5.4
> 
> 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());
> +


just for note, perhaps we can do the same for pstates_num in report_display_cpu_pstates(),
to keep it similar.

	-ss


> +		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;
> -- 
> 1.7.5.4
> 
> _______________________________________________
> PowerTop mailing list
> PowerTop(a)lists.01.org
> https://lists.01.org/mailman/listinfo/powertop
> 

             reply	other threads:[~2013-01-22 17:09 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-22 17:09 Sergey Senozhatsky [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-31 23:39 Kristen Carlson Accardi
2013-01-23 14:57 Igor Zhbanov
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=20130122170926.GB2320@swordfish \
    --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.