From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753032AbbFNIVJ (ORCPT ); Sun, 14 Jun 2015 04:21:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41546 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752728AbbFNIUt (ORCPT ); Sun, 14 Jun 2015 04:20:49 -0400 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , Adrian Hunter , Andi Kleen , David Ahern , Ingo Molnar , Namhyung Kim , Peter Zijlstra , Stephane Eranian Subject: [PATCH 09/30] perf tools: Propagate thread maps through the evlist Date: Sun, 14 Jun 2015 10:19:24 +0200 Message-Id: <1434269985-521-10-git-send-email-jolsa@kernel.org> In-Reply-To: <1434269985-521-1-git-send-email-jolsa@kernel.org> References: <1434269985-521-1-git-send-email-jolsa@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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