From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932194AbcAMIuh (ORCPT ); Wed, 13 Jan 2016 03:50:37 -0500 Received: from mga02.intel.com ([134.134.136.20]:62852 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932096AbcAMIuf (ORCPT ); Wed, 13 Jan 2016 03:50:35 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,288,1449561600"; d="scan'208";a="632671938" Subject: Re: [PATCH RESEND] perf record: Add --buildid-all option To: Arnaldo Carvalho de Melo References: <1452519429-31779-1-git-send-email-namhyung@kernel.org> <1452519518-3612-1-git-send-email-namhyung@kernel.org> <5694F166.3000401@intel.com> <20160112143536.GW18367@kernel.org> Cc: Namhyung Kim , 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: <56960F0D.90007@intel.com> Date: Wed, 13 Jan 2016 10:47:09 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20160112143536.GW18367@kernel.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/01/16 16:35, Arnaldo Carvalho de Melo wrote: > 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? No, it was just a thought.