diff options
author | Arjan van de Ven <arjan@linux.intel.com> | 2010-08-11 13:07:03 -0400 |
---|---|---|
committer | Arjan van de Ven <arjan@linux.intel.com> | 2010-08-11 13:07:03 -0400 |
commit | eb73e09045591d34c27d213cc07bd802ba7f5009 (patch) | |
tree | 819dc68a169d65fb294daf4449047d7b1ea7a385 /perf | |
parent | 810d2dd4440a8df483ae1bbd426879f2e38584f2 (diff) | |
download | powertop-eb73e09045591d34c27d213cc07bd802ba7f5009.tar.gz |
register events for all cpus
Diffstat (limited to 'perf')
-rw-r--r-- | perf/perf_bundle.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/perf/perf_bundle.cpp b/perf/perf_bundle.cpp index 7cce96c..dc612c2 100644 --- a/perf/perf_bundle.cpp +++ b/perf/perf_bundle.cpp @@ -8,6 +8,8 @@ #include "perf_event.h" #include "perf.h" +#include "../cpu/cpu.h" + class perf_bundle_event: public perf_event { virtual void handle_event(struct perf_event_header *header, void *cookie); @@ -29,18 +31,25 @@ void perf_bundle_event::handle_event(struct perf_event_header *header, void *coo void perf_bundle::add_event(const char *event_name) { + unsigned int i; class perf_event *ev; - ev = new class perf_bundle_event(); + for (i = 0; i < all_cpus.size(); i++) { + + if (!all_cpus[i]) + continue; + + ev = new class perf_bundle_event(); - ev->set_event_name(event_name); - ev->set_cpu(5); + ev->set_event_name(event_name); + ev->set_cpu(i); - if (event_names.size() <= ev->trace_type) - event_names.resize(ev->trace_type + 1); - event_names[ev->trace_type] = strdup(event_name); + if (event_names.size() <= ev->trace_type) + event_names.resize(ev->trace_type + 1); + event_names[ev->trace_type] = strdup(event_name); - events.push_back(ev); + events.push_back(ev); + } } void perf_bundle::start(void) |