diff options
author | arjan <arjan@arjan-desktop.localdomain> | 2010-09-08 12:16:35 -0700 |
---|---|---|
committer | arjan <arjan@arjan-desktop.localdomain> | 2010-09-08 12:16:35 -0700 |
commit | 3a7d8e45d75881d5e9579e363221661d19020388 (patch) | |
tree | e0633730e9d322194bacc3bf252db254c2648c3f /process/do_process.cpp | |
parent | a842b757b6aa0bede71d3e36c9d86a48c19e481e (diff) | |
download | powertop-3a7d8e45d75881d5e9579e363221661d19020388.tar.gz |
Add devices to the power guilty list
Diffstat (limited to 'process/do_process.cpp')
-rw-r--r-- | process/do_process.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/process/do_process.cpp b/process/do_process.cpp index 8f1b9cc..7414c44 100644 --- a/process/do_process.cpp +++ b/process/do_process.cpp @@ -2,6 +2,7 @@ #include "interrupt.h" #include "timer.h" #include "work.h" +#include "device.h" #include "../lib.h" #include <vector> @@ -475,6 +476,7 @@ void process_process_data(void) all_interrupts_to_all_power(); all_timers_to_all_power(); all_work_to_all_power(); + all_devices_to_all_power(); sort(all_power.begin(), all_power.end(), power_cpu_sort); for (i = 0; i < all_power.size() && i < 20; i++) @@ -499,8 +501,11 @@ double total_cpu_time(void) { unsigned int i; double total = 0.0; - for (i = 0; i < all_power.size() ; i++) + for (i = 0; i < all_power.size() ; i++) { + if (all_power[i]->child_runtime > all_power[i]->accumulated_runtime) + all_power[i]->child_runtime = 0; total += all_power[i]->accumulated_runtime - all_power[i]->child_runtime; + } total = (total / (0.0001 + last_stamp - first_stamp)) * 100; |