aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris E Ferron <chris.e.ferron@linux.intel.com>2012-11-14 08:56:10 -0800
committerChris E Ferron <chris.e.ferron@linux.intel.com>2012-11-14 08:56:10 -0800
commit29f42b5b30a8841d449dc825cf41f2d8ee956517 (patch)
tree1269db53183e5bd1e1d0598a264aeb9063f72da2
parent307be107339c322bbfe24866ee55656b0dc67e8d (diff)
downloadpowertop-2.0-v2-29f42b5b30a8841d449dc825cf41f2d8ee956517.tar.gz
fixed issues with p-state reported CPU frequencies (actually, uninitialized
values ) extended from fix for i965 monitoring. Also found UI titles missing, so repleaced them.
-rw-r--r--src/cpu/cpu_core.cpp10
-rw-r--r--src/cpu/cpu_linux.cpp10
-rw-r--r--src/cpu/cpu_package.cpp13
-rw-r--r--src/cpu/intel_cpus.cpp18
4 files changed, 49 insertions, 2 deletions
diff --git a/src/cpu/cpu_core.cpp b/src/cpu/cpu_core.cpp
index 593d5f6..b0dd4da 100644
--- a/src/cpu/cpu_core.cpp
+++ b/src/cpu/cpu_core.cpp
@@ -42,6 +42,11 @@ char * cpu_core::fill_cstate_line(int line_nr, char *buffer, const char *separat
unsigned int i;
buffer[0] = 0;
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" Core"));
+ return buffer;
+ }
+
for (i = 0; i < cstates.size(); i++) {
if (cstates[i]->line_level != line_nr)
continue;
@@ -181,6 +186,11 @@ char * cpu_core::fill_pstate_line(int line_nr, char *buffer)
total_stamp = 1;
}
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" Core"));
+ return buffer;
+ }
+
if (line_nr >= (int)pstates.size() || line_nr < 0)
return buffer;
diff --git a/src/cpu/cpu_linux.cpp b/src/cpu/cpu_linux.cpp
index f5e269e..d6caf45 100644
--- a/src/cpu/cpu_linux.cpp
+++ b/src/cpu/cpu_linux.cpp
@@ -227,6 +227,11 @@ char * cpu_linux::fill_cstate_line(int line_nr, char *buffer, const char *separa
unsigned int i;
buffer[0] = 0;
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" CPU %i"), number);
+ return buffer;
+ }
+
for (i = 0; i < cstates.size(); i++) {
if (cstates[i]->line_level != line_nr)
continue;
@@ -321,6 +326,11 @@ char * cpu_linux::fill_pstate_line(int line_nr, char *buffer)
total_stamp = 1;
}
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" CPU %i"), number);
+ return buffer;
+ }
+
if (line_nr >= (int)pstates.size() || line_nr < 0)
return buffer;
diff --git a/src/cpu/cpu_package.cpp b/src/cpu/cpu_package.cpp
index 2e2e8a3..b9d4c19 100644
--- a/src/cpu/cpu_package.cpp
+++ b/src/cpu/cpu_package.cpp
@@ -42,6 +42,11 @@ char * cpu_package::fill_cstate_line(int line_nr, char *buffer, const char *sepa
unsigned int i;
buffer[0] = 0;
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_("Package"));
+ return buffer;
+ }
+
for (i = 0; i < cstates.size(); i++) {
if (cstates[i]->line_level != line_nr)
continue;
@@ -94,6 +99,12 @@ char * cpu_package::fill_pstate_line(int line_nr, char *buffer)
total_stamp = 1;
}
+
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" Package"));
+ return buffer;
+ }
+
if (line_nr >= (int)pstates.size() || line_nr < 0)
return buffer;
@@ -149,7 +160,7 @@ void cpu_package::calculate_freq(uint64_t time)
/* calculate the maximum frequency of all children */
for (i = 0; i < children.size(); i++)
- if (children[i]) {
+ if (children[i] && children[i]->has_pstates()) {
uint64_t f = 0;
if (!children[i]->idle) {
f = children[i]->current_frequency;
diff --git a/src/cpu/intel_cpus.cpp b/src/cpu/intel_cpus.cpp
index 24465a0..f7b86bc 100644
--- a/src/cpu/intel_cpus.cpp
+++ b/src/cpu/intel_cpus.cpp
@@ -292,6 +292,11 @@ char * nhm_core::fill_pstate_line(int line_nr, char *buffer)
total_stamp = 1;
}
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" Core"));
+ return buffer;
+ }
+
if (line_nr >= (int)pstates.size() || line_nr < 0)
return buffer;
@@ -311,6 +316,12 @@ char * nhm_package::fill_pstate_line(int line_nr, char *buffer)
total_stamp = 1;
}
+
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" Package"));
+ return buffer;
+ }
+
if (line_nr >= (int)pstates.size() || line_nr < 0)
return buffer;
@@ -460,7 +471,7 @@ void nhm_package::calculate_freq(uint64_t time)
/* calculate the maximum frequency of all children */
for (i = 0; i < children.size(); i++)
- if (children[i]) {
+ if (children[i] && children[i]->has_pstates()) {
uint64_t f = 0;
if (!children[i]->idle) {
f = children[i]->current_frequency;
@@ -588,6 +599,11 @@ char * nhm_cpu::fill_pstate_line(int line_nr, char *buffer)
total_stamp = 1;
}
+ if (line_nr == LEVEL_HEADER) {
+ sprintf(buffer,_(" CPU %i"), number);
+ return buffer;
+ }
+
if (line_nr == LEVEL_C0) {
double F;
F = 1.0 * (tsc_after - tsc_before) * (aperf_after - aperf_before) / (mperf_after - mperf_before) / time_factor * 1000;