From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762634AbcALOgG (ORCPT ); Tue, 12 Jan 2016 09:36:06 -0500 Received: from mail.kernel.org ([198.145.29.136]:55011 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760007AbcALOfk (ORCPT ); Tue, 12 Jan 2016 09:35:40 -0500 Date: Tue, 12 Jan 2016 11:35:36 -0300 From: Arnaldo Carvalho de Melo To: Adrian Hunter Cc: Namhyung Kim , Ingo Molnar , Peter Zijlstra , Jiri Olsa , LKML , David Ahern , Andi Kleen , Stephane Eranian Subject: Re: [PATCH RESEND] perf record: Add --buildid-all option Message-ID: <20160112143536.GW18367@kernel.org> References: <1452519429-31779-1-git-send-email-namhyung@kernel.org> <1452519518-3612-1-git-send-email-namhyung@kernel.org> <5694F166.3000401@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5694F166.3000401@intel.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, Jan 12, 2016 at 02:28:22PM +0200, Adrian Hunter escreveu: > 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. Right, if that was the overhead, have you ever measured this? - Arnaldo