diff options
author | Chris E Ferron <chris.e.ferron@linux.intel.com> | 2012-11-14 08:56:10 -0800 |
---|---|---|
committer | Chris E Ferron <chris.e.ferron@linux.intel.com> | 2012-11-14 08:56:10 -0800 |
commit | 29f42b5b30a8841d449dc825cf41f2d8ee956517 (patch) | |
tree | 1269db53183e5bd1e1d0598a264aeb9063f72da2 | |
parent | 307be107339c322bbfe24866ee55656b0dc67e8d (diff) |
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.cpp | 10 | ||||
-rw-r--r-- | src/cpu/cpu_linux.cpp | 10 | ||||
-rw-r--r-- | src/cpu/cpu_package.cpp | 13 | ||||
-rw-r--r-- | src/cpu/intel_cpus.cpp | 18 |
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; |