Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1170250

[PATCH 06/27] perf tools: Propagate thread maps through the evlist

From Jiri Olsa <jolsa@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 06/27] perf tools: Propagate thread maps through the evlist
Date 2015-06-23 00:40 +0200
Message-ID <pEixJ-Bm-47@gated-at.bofh.it> (permalink)
References <pEixI-Bm-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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/tip-6vc92bytyy2d6c5entm5s698@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 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 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,
 		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 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)
 	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 bb0579e8a10a..9e16a5c4eb01 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
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCHv4 00/27] perf stat: Introduce --per-thread option Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 14/27] perf stat: Move perf_evsel__(alloc|free|reset)_stat_priv into stat object Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 17/27] perf stat: Introduce perf_evsel__alloc_stats function Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 07/27] perf tools: Make perf_evsel__(nr_)cpus generic Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 04/27] perf tools: Add reference counting for thread_map object Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 25/27] perf stat: Using init_stats instead of memset Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 23/27] perf stat: Remove perf_evsel__read_cb function Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 18/27] perf stat: Introduce perf_evsel__read function Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 15/27] perf stat: Move perf_evsel__(alloc|free)_prev_raw_counts into stat object Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 02/27] perf tools: Add comm string into struct thread_map Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 21/27] perf stat: Move zero_per_pkg into counter process code Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 27/27] perf stat: Introduce --per-thread option Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 11/27] perf stat: Make stats work over the thread dimension Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 13/27] perf stat: Introduce perf_evlist__reset_stats Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 06/27] perf tools: Propagate thread maps through the evlist Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 05/27] perf tools: Propagate cpu maps through the evlist Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:40 +0200
  [PATCH 20/27] perf stat: Separate counters reading and processing Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 24/27] perf stat: Rename print_interval to process_interval Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 22/27] perf stat: Move perf_stat initialization counter process code Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 19/27] perf stat: Introduce read_counters function Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 08/27] perf tests: Add thread_map object tests Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 26/27] perf stat: Introduce print_counters function Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 09/27] perf stat: Introduce perf_counts function Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 10/27] perf stat: Use xyarray for cpu evsel counts Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 16/27] perf stat: Move perf_evlist__(alloc|free|reset)_stats into stat object Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 12/27] perf stat: Rename struct perf_counts::cpu member to values Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  [PATCH 03/27] perf tools: Add reference counting for cpu_map object Jiri Olsa <jolsa@kernel.org> - 2015-06-23 00:50 +0200
  Re: [PATCHv4 00/27] perf stat: Introduce --per-thread option Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-06-23 01:10 +0200

csiph-web