Hello!
On Arm processors there are more than 10 P-states. On my device there
are 12
p-states with different frequency. But PowerTOP displays only 10. And it
doesn't display states (11 and 12) where the phone spends most of the
time.
I suppose that was because of console mode of PowerTOP, when there are
limited
number of lines on the console. But in the case of HTML-report this
should
not be a problem.
Here is the patch that counts the number of found P-states and
displays all
of them.
--8<--Cut
here----------------------------------------------------------------
diff -purN -X dontdiff-powertop powertop-intel/config.h powertop/config.h
diff -purN -X dontdiff-powertop powertop-intel/src/cpu/cpu.cpp
powertop/src/cpu/cpu.cpp
--- powertop-intel/src/cpu/cpu.cpp 2012-07-05 13:06:16.000000000 +0400
+++ powertop/src/cpu/cpu.cpp 2012-07-05 18:43:19.704809327 +0400
@@ -618,6 +618,11 @@ void report_display_cpu_pstates(void)
unsigned int package, core, cpu;
int line;
class abstract_cpu *_package, * _core, * _cpu;
+ unsigned int i, pstates_num;
+
+ for (i = 0, pstates_num = 0; i< all_cpus.size(); i++)
+ if (all_cpus[i]&& all_cpus[i]->pstates.size()> pstates_num)
+ pstates_num = all_cpus[i]->pstates.size();
if ((!reportout.csv_report)&&(!reportout.http_report))
return;
@@ -644,7 +649,7 @@ void report_display_cpu_pstates(void)
if (!_core)
continue;
- for (line = LEVEL_HEADER; line< 10; line++) {
+ for (line = LEVEL_HEADER; line< (int)pstates_num; line++) {
int first = 1;
if (!_package->has_pstate_level(line))
--8<--------------------------------------------------------------------------
The same issue may affect the function report_display_cpu_cstates()
but I'm not sure that CPUs with more than 10 C-states exists.
The same code is in the function impl_w_display_cpu_states(), but that
function is used in console mode only.
Thank you.
_______________________________________________
PowerTop mailing list
PowerTop(a)lists.01.org
https://lists.01.org/mailman/listinfo/powertop