aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@gmail.com>2012-11-16 00:17:56 +0900
committerChris E Ferron <chris.e.ferron@linux.intel.com>2012-11-15 08:20:53 -0800
commit488d4ac2a2808cfc49d9f3d326aefab78b888298 (patch)
treeccb83f8a3f2032a9d8e95abe47e2bce7c0496f2a
parent29f42b5b30a8841d449dc825cf41f2d8ee956517 (diff)
downloadpowertop-2.0-v2-488d4ac2a2808cfc49d9f3d326aefab78b888298.tar.gz
cpu: Fix leftovers from the P state cpu frequency calculation
The commit 15b8bfb ("Ignore non-P-state-enabled CPUs when calculating frequency") and 29f42b5 ("fixed issues with p-state reported CPU frequencies") fixed frequency calculation for cpu packages but missed it for cpu cores. Add it. This fixes wrong frequency report on my quad-core box: 2072.5% -> 100.0% Cc: Ivan Shapovalov <intelfx100@gmail.com> Signed-off-by: Namhyung Kim <namhyung@gmail.com>
-rw-r--r--src/cpu/cpu_core.cpp3
-rw-r--r--src/cpu/intel_cpus.cpp2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/cpu/cpu_core.cpp b/src/cpu/cpu_core.cpp
index b0dd4da..2caa58d 100644
--- a/src/cpu/cpu_core.cpp
+++ b/src/cpu/cpu_core.cpp
@@ -131,10 +131,9 @@ void cpu_core::calculate_freq(uint64_t time)
bool is_idle = true;
unsigned int i;
-
/* 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 f7b86bc..19ad85c 100644
--- a/src/cpu/intel_cpus.cpp
+++ b/src/cpu/intel_cpus.cpp
@@ -240,7 +240,7 @@ void nhm_core::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;