diff options
author | arjan <arjan@arjan-desktop.localdomain> | 2010-09-03 21:58:25 -0700 |
---|---|---|
committer | arjan <arjan@arjan-desktop.localdomain> | 2010-09-03 21:58:25 -0700 |
commit | e9ab070988db9692f2b29073f2224f21157e48f1 (patch) | |
tree | 30d8cd4e549cfebe52a2d865ac7dd5986e261d26 /perf | |
parent | c0e7228177af056a216f73b1be5a47d7b643bf39 (diff) | |
download | powertop-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.cpp | 8 |
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; |