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.

Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Jiri Olsa <[email protected]>
---
 tools/perf/util/evlist.c | 4 +++-
 tools/perf/util/evsel.c  | 1 +
 tools/perf/util/evsel.h  | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index c0d3058c1868..b4c22f8f2423 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -1100,7 +1100,9 @@ static int propagate_maps(struct perf_evlist *evlist, 
struct target *target)
                if (!evsel->cpus || target->cpu_list)
                        evsel->cpus = cpu_map__get(evlist->cpus);
 
-               if (!evsel->cpus)
+               evsel->threads = thread_map__get(evlist->threads);
+
+               if (!evsel->cpus || !evsel->threads)
                        return -ENOMEM;
        }
 
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index fe5c0ae8b116..6ef818475aa3 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -903,6 +903,7 @@ void perf_evsel__exit(struct perf_evsel *evsel)
        perf_evsel__free_id(evsel);
        close_cgroup(evsel->cgrp);
        cpu_map__put(evsel->cpus);
+       thread_map__put(evsel->threads);
        zfree(&evsel->group_name);
        zfree(&evsel->name);
        perf_evsel__object.fini(evsel);
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 21ec08247d47..d18572223b08 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -82,6 +82,7 @@ struct perf_evsel {
        struct cgroup_sel       *cgrp;
        void                    *handler;
        struct cpu_map          *cpus;
+       struct thread_map       *threads;
        unsigned int            sample_size;
        int                     id_pos;
        int                     is_pos;
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to