From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761405AbcALMbr (ORCPT ); Tue, 12 Jan 2016 07:31:47 -0500 Received: from mga11.intel.com ([192.55.52.93]:19438 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752913AbcALMbq (ORCPT ); Tue, 12 Jan 2016 07:31:46 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,557,1444719600"; d="scan'208";a="632173694" Subject: Re: [PATCH RESEND] perf record: Add --buildid-all option To: Namhyung Kim , Arnaldo Carvalho de Melo References: <1452519429-31779-1-git-send-email-namhyung@kernel.org> <1452519518-3612-1-git-send-email-namhyung@kernel.org> Cc: Ingo Molnar , Peter Zijlstra , Jiri Olsa , LKML , David Ahern , Andi Kleen , Stephane Eranian From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: <5694F166.3000401@intel.com> Date: Tue, 12 Jan 2016 14:28:22 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1452519518-3612-1-git-send-email-namhyung@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/01/16 15:38, Namhyung Kim wrote: > The --buildid-all option is to record build-id of all DSOs in the file. > It might be very costly to postprocess samples to find which DSO hits. > > Cc: Adrian Hunter > Cc: Andi Kleen > Cc: Stephane Eranian > Signed-off-by: Namhyung Kim > --- > tools/perf/Documentation/perf-record.txt | 3 +++ > tools/perf/builtin-record.c | 32 ++++++++++++++++++++++++++------ > 2 files changed, 29 insertions(+), 6 deletions(-) > > diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt > index 3a1a32f5479f..fbceb631387c 100644 > --- a/tools/perf/Documentation/perf-record.txt > +++ b/tools/perf/Documentation/perf-record.txt > @@ -338,6 +338,9 @@ Options passed to clang when compiling BPF scriptlets. > Specify vmlinux path which has debuginfo. > (enabled when BPF prologue is on) > > +--buildid-all:: > +Record build-id of all DSOs regardless whether it's actually hit or not. > + > SEE ALSO > -------- > linkperf:perf-stat[1], linkperf:perf-list[1] > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index dc4e0adf5c5b..a42cb2955697 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -50,6 +50,7 @@ struct record { > int realtime_prio; > bool no_buildid; > bool no_buildid_cache; > + bool buildid_all; > unsigned long long samples; > }; > > @@ -362,6 +363,13 @@ static int process_buildids(struct record *rec) > */ > symbol_conf.ignore_vmlinux_buildid = true; > > + /* > + * If --buildid-all is given, it marks all DSO regardless of hits, > + * so no need to process samples. > + */ > + if (rec->buildid_all) > + rec->tool.sample = NULL; I wonder, if we are not processing samples, could the processing could be much simpler? All we need to do is read all the MMAP events, in any order, and create DSOs - no need to create threads or map-groups etc etc.