aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2015-06-22 18:36:07 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-06-25 14:15:51 -0400
commit578e91ec04d03aca89e300151addb3e3ed5b06ea (patch)
treeee8ff00a1d84d0169226e2c99fba4ec8097a0e13 /tools
parentb7f0c203586b91419ff9aa9b1115e261082ff5b4 (diff)
perf evlist: Propagate thread maps through the evlist
Propagate evlist's thread_map object through all the evsel objects. It'll be handy to access evsel's threads directly in following patches. The reason is there's no link from evsel to evlist which hold threads map now and evlist is not always available. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1435012588-9007-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/util/evlist.c4
-rw-r--r--tools/perf/util/evsel.c1
-rw-r--r--tools/perf/util/evsel.h1
3 files changed, 5 insertions, 1 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 214affaf1cf6..6cfdee68e763 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -1117,7 +1117,9 @@ static int perf_evlist__propagate_maps(struct perf_evlist *evlist,
1117 if (!evsel->cpus || target->cpu_list) 1117 if (!evsel->cpus || target->cpu_list)
1118 evsel->cpus = cpu_map__get(evlist->cpus); 1118 evsel->cpus = cpu_map__get(evlist->cpus);
1119 1119
1120 if (!evsel->cpus) 1120 evsel->threads = thread_map__get(evlist->threads);
1121
1122 if (!evsel->cpus || !evsel->threads)
1121 return -ENOMEM; 1123 return -ENOMEM;
1122 } 1124 }
1123 1125
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 31b0afb68825..1b2f480a3e82 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -886,6 +886,7 @@ void perf_evsel__exit(struct perf_evsel *evsel)
886 perf_evsel__free_id(evsel); 886 perf_evsel__free_id(evsel);
887 close_cgroup(evsel->cgrp); 887 close_cgroup(evsel->cgrp);
888 cpu_map__put(evsel->cpus); 888 cpu_map__put(evsel->cpus);
889 thread_map__put(evsel->threads);
889 zfree(&evsel->group_name); 890 zfree(&evsel->group_name);
890 zfree(&evsel->name); 891 zfree(&evsel->name);
891 perf_evsel__object.fini(evsel); 892 perf_evsel__object.fini(evsel);
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index bb0579e8a10a..9e16a5c4eb01 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -82,6 +82,7 @@ struct perf_evsel {
82 struct cgroup_sel *cgrp; 82 struct cgroup_sel *cgrp;
83 void *handler; 83 void *handler;
84 struct cpu_map *cpus; 84 struct cpu_map *cpus;
85 struct thread_map *threads;
85 unsigned int sample_size; 86 unsigned int sample_size;
86 int id_pos; 87 int id_pos;
87 int is_pos; 88 int is_pos;