aboutsummaryrefslogtreecommitdiff
path: root/process/do_process.cpp
diff options
context:
space:
mode:
authorarjan <arjan@arjan-desktop.localdomain>2010-09-08 12:16:35 -0700
committerarjan <arjan@arjan-desktop.localdomain>2010-09-08 12:16:35 -0700
commit3a7d8e45d75881d5e9579e363221661d19020388 (patch)
treee0633730e9d322194bacc3bf252db254c2648c3f /process/do_process.cpp
parenta842b757b6aa0bede71d3e36c9d86a48c19e481e (diff)
downloadpowertop-3a7d8e45d75881d5e9579e363221661d19020388.tar.gz
Add devices to the power guilty list
Diffstat (limited to 'process/do_process.cpp')
-rw-r--r--process/do_process.cpp7
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;