perf cpumap: Add new map type for aggregation
[linux-2.6-microblaze.git] / tools / perf / util / record.c
index ea9aa1d..e70c9dd 100644 (file)
@@ -14,6 +14,7 @@
 #include "util/perf_api_probe.h"
 #include "record.h"
 #include "../perf-sys.h"
+#include "topdown.h"
 
 /*
  * evsel__config_leader_sampling() uses special rules for leader sampling.
@@ -24,7 +25,7 @@ static struct evsel *evsel__read_sampler(struct evsel *evsel, struct evlist *evl
 {
        struct evsel *leader = evsel->leader;
 
-       if (evsel__is_aux_event(leader)) {
+       if (evsel__is_aux_event(leader) || arch_topdown_sample_read(leader)) {
                evlist__for_each_entry(evlist, evsel) {
                        if (evsel->leader == leader && evsel != evsel->leader)
                                return evsel;
@@ -88,8 +89,7 @@ static void evsel__config_leader_sampling(struct evsel *evsel, struct evlist *ev
                            leader->core.attr.sample_type;
 }
 
-void perf_evlist__config(struct evlist *evlist, struct record_opts *opts,
-                        struct callchain_param *callchain)
+void evlist__config(struct evlist *evlist, struct record_opts *opts, struct callchain_param *callchain)
 {
        struct evsel *evsel;
        bool use_sample_identifier = false;
@@ -101,7 +101,7 @@ void perf_evlist__config(struct evlist *evlist, struct record_opts *opts,
         * since some might depend on this info.
         */
        if (opts->group)
-               perf_evlist__set_leader(evlist);
+               evlist__set_leader(evlist);
 
        if (evlist->core.cpus->map[0] < 0)
                opts->no_inherit = true;
@@ -143,7 +143,7 @@ void perf_evlist__config(struct evlist *evlist, struct record_opts *opts,
                        evsel__set_sample_id(evsel, use_sample_identifier);
        }
 
-       perf_evlist__set_id_pos(evlist);
+       evlist__set_id_pos(evlist);
 }
 
 static int get_max_rate(unsigned int *rate)
@@ -216,7 +216,7 @@ int record_opts__config(struct record_opts *opts)
        return record_opts__config_freq(opts);
 }
 
-bool perf_evlist__can_select_event(struct evlist *evlist, const char *str)
+bool evlist__can_select_event(struct evlist *evlist, const char *str)
 {
        struct evlist *temp_evlist;
        struct evsel *evsel;