From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754406AbcAHI64 (ORCPT ); Fri, 8 Jan 2016 03:58:56 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:33272 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751314AbcAHI6y (ORCPT ); Fri, 8 Jan 2016 03:58:54 -0500 Subject: Re: [tip:perf/core] perf record: Add record.build-id config option To: namhyung@kernel.org References: <1450144196-22957-1-git-send-email-namhyung@kernel.org> Cc: acme@redhat.com, jolsa@kernel.org, mingo@kernel.org, linux-kernel@vger.kernel.org, treeze.taeung@gmail.com From: Taeung Song Message-ID: <568F7A4A.9060409@gmail.com> Date: Fri, 8 Jan 2016 17:58:50 +0900 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: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Namhyung I found accidentally a missing thing on Documentation/perf-record.txt. A trifling thing.. On 12/18/2015 05:51 PM, tip-bot for Namhyung Kim wrote: > Commit-ID: 7a29c087ff80f5d534bd6729c852099fc572c8d0 > Gitweb: http://git.kernel.org/tip/7a29c087ff80f5d534bd6729c852099fc572c8d0 > Author: Namhyung Kim > AuthorDate: Tue, 15 Dec 2015 10:49:56 +0900 > Committer: Arnaldo Carvalho de Melo > CommitDate: Tue, 15 Dec 2015 11:46:16 -0300 > > perf record: Add record.build-id config option > > Post processing at 'perf record' takes a long time on big machines. > > What it does is to find the build-id of binaries found in the event > stream, so that it can make sure, at 'report' time, that the symtabs (be > it ELF, kallsyms, etc) being used to resolve symbols are the ones > matching the binaries found at 'record' time. > > Sometimes we just want to skip this processing of events at the end of > the session to get quicker results, making sure the binaries haven't > changed from 'record' to 'report' time. > > Add a new config option to control this behavior. > > The record.build-id config variable can have one of the following > values: > > - cache: post-process data and save/update the binaries into the > build-id cache (in ~/.debug). This is the default. > - no-cache: post-process the data but not update the build-id cache. > Same effect as using the -N option. > - skip: skip post-processing and do not update the cache. > Same effect as using the -B option. > > Reported-and-Acked-by: Peter Zijlstra (Intel) > Signed-off-by: Namhyung Kim > Acked-by: Jiri Olsa > Cc: David Ahern > Cc: Taeung Song > Link: http://lkml.kernel.org/r/1450144196-22957-1-git-send-email-namhyung@kernel.org > [ Added some more text to the documentation ] > Signed-off-by: Arnaldo Carvalho de Melo > --- > tools/perf/Documentation/perf-record.txt | 14 +++++++++++++- > tools/perf/builtin-record.c | 13 +++++++++++++ > 2 files changed, 26 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt > index 8d032f4..3a1a32f 100644 > --- a/tools/perf/Documentation/perf-record.txt > +++ b/tools/perf/Documentation/perf-record.txt > @@ -207,11 +207,23 @@ comma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0- > In per-thread mode with inheritance mode on (default), samples are captured only when > the thread executes on the designated CPUs. Default is to monitor all CPUs. > > +-B:: > +--no-buildid:: > +Do not save the build ids of binaries in the perf.data files. This skips > +post processing after recording, which sometimes makes the final step in > +the recording process to take a long time, as it needs to process all > +events looking for mmap records. The downside is that it can misresolve > +symbols if the workload binaries used when recording get locally rebuilt > +or upgraded, because the only key available in this case is the > +pathname. You can also set the "record.build-id" config variable to > +'skip to have this behaviour permanently. The 'skip' needs to be surrounded by single quotes. A single quote is missing. Thanks, Taeung > + > -N:: > --no-buildid-cache:: > Do not update the buildid cache. This saves some overhead in situations > where the information in the perf.data file (which includes buildids) > -is sufficient. > +is sufficient. You can also set the "record.build-id" config variable to > +'no-cache' to have the same effect. > > -G name,...:: > --cgroup name,...:: > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 3ef3c79..a3b4930 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -837,6 +837,19 @@ int record_callchain_opt(const struct option *opt, > > static int perf_record_config(const char *var, const char *value, void *cb) > { > + struct record *rec = cb; > + > + if (!strcmp(var, "record.build-id")) { > + if (!strcmp(value, "cache")) > + rec->no_buildid_cache = false; > + else if (!strcmp(value, "no-cache")) > + rec->no_buildid_cache = true; > + else if (!strcmp(value, "skip")) > + rec->no_buildid = true; > + else > + return -1; > + return 0; > + } > if (!strcmp(var, "record.call-graph")) > var = "call-graph.record-mode"; /* fall-through */ > >