From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751718AbbHSPX4 (ORCPT ); Wed, 19 Aug 2015 11:23:56 -0400 Received: from mga09.intel.com ([134.134.136.24]:16223 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751582AbbHSPXy (ORCPT ); Wed, 19 Aug 2015 11:23:54 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,710,1432623600"; d="scan'208";a="786854914" Message-ID: <55D49F87.4060308@intel.com> Date: Wed, 19 Aug 2015 18:23:51 +0300 From: Adrian Hunter User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Arnaldo Carvalho de Melo , Arnaldo Carvalho de Melo , Jiri Olsa , Jiri Olsa CC: linux-kernel@vger.kernel.org, torvalds@linux-foundation.org, mingo@kernel.org Subject: Re: [PATCH 3/3] perf tools: Fix buildid processing References: <1439994561-27436-1-git-send-email-adrian.hunter@intel.com> <1439994561-27436-4-git-send-email-adrian.hunter@intel.com> In-Reply-To: <1439994561-27436-4-git-send-email-adrian.hunter@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/08/2015 5:29 p.m., Adrian Hunter wrote: > After recording, 'perf record' post-processes the data to > determine which buildids are needed. That processing must > process the data in time order, if possible, because > otherwise dependent events, like forks and mmaps, will > not make sense. > > Signed-off-by: Adrian Hunter > --- > tools/perf/builtin-record.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index de165a1b9240..f36b88938499 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -500,6 +500,15 @@ static int __cmd_record(struct record *rec, int argc, const char **argv) > return -1; > } > > + /* > + * Normally perf_session__new would do this, but it doesn't have the > + * evlist. > + */ > + if (rec->tool.ordered_events && !perf_evlist__sample_id_all(rec->evlist)) { > + dump_printf("WARNING: No sample_id_all support, falling back to unordered processing\n"); > + rec->tool.ordered_events = false; > + } > + In fact this chunk is misplaced, it needs to be below the call to record__open() after which the attributes are correctly configured. And dump_printf() is no good for 'perf record', pr_debug would be better. Don't have time to do that right now, I'll do it tommorow unless Arnaldo fixes it up. > fd = perf_data_file__fd(file); > rec->session = session; > > @@ -965,9 +974,11 @@ static struct record record = { > .tool = { > .sample = process_sample_event, > .fork = perf_event__process_fork, > + .exit = perf_event__process_exit, > .comm = perf_event__process_comm, > .mmap = perf_event__process_mmap, > .mmap2 = perf_event__process_mmap2, > + .ordered_events = true, > }, > }; > >