aboutsummaryrefslogtreecommitdiff
path: root/perf
diff options
context:
space:
mode:
authorarjan <arjan@arjan-desktop.localdomain>2010-09-03 21:58:25 -0700
committerarjan <arjan@arjan-desktop.localdomain>2010-09-03 21:58:25 -0700
commite9ab070988db9692f2b29073f2224f21157e48f1 (patch)
tree30d8cd4e549cfebe52a2d865ac7dd5986e261d26 /perf
parentc0e7228177af056a216f73b1be5a47d7b643bf39 (diff)
downloadpowertop-e9ab070988db9692f2b29073f2224f21157e48f1.tar.gz
use cpu consumption and wakeups as measure instead; that way we can directly account power to processes
and it also converges much more nicely (far fewer parameters to fit)
Diffstat (limited to 'perf')
-rw-r--r--perf/perf.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/perf/perf.cpp b/perf/perf.cpp
index 9bef4b3..b0b31d3 100644
--- a/perf/perf.cpp
+++ b/perf/perf.cpp
@@ -174,12 +174,14 @@ perf_event::perf_event(const char *event_name, int _cpu, int buffer_size)
perf_fd = -1;
bufsize = buffer_size;
cpu = _cpu;
+ perf_mmap = NULL;
}
perf_event::perf_event(void)
{
perf_fd = -1;
bufsize = 128;
+ perf_mmap = NULL;
}
void perf_event::start(void)
@@ -225,7 +227,11 @@ void perf_event::process(void *cookie)
void perf_event::clear(void)
{
- munmap(perf_mmap, (bufsize+1)*getpagesize());
+ if (perf_mmap) {
+// memset(perf_mmap, 0, (bufsize)*getpagesize());
+ munmap(perf_mmap, (bufsize+1)*getpagesize());
+ perf_mmap = NULL;
+ }
if (perf_fd != -1)
close(perf_fd);
perf_fd = -1;