From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751794AbbHSPm2 (ORCPT ); Wed, 19 Aug 2015 11:42:28 -0400 Received: from mail.kernel.org ([198.145.29.136]:42055 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751418AbbHSPm1 (ORCPT ); Wed, 19 Aug 2015 11:42:27 -0400 Date: Wed, 19 Aug 2015 12:42:17 -0300 From: Arnaldo Carvalho de Melo To: Adrian Hunter Cc: Jiri Olsa , Jiri Olsa , linux-kernel@vger.kernel.org, torvalds@linux-foundation.org, mingo@kernel.org Subject: Re: [PATCH 3/3] perf tools: Fix buildid processing Message-ID: <20150819154217.GL18279@kernel.org> References: <1439994561-27436-1-git-send-email-adrian.hunter@intel.com> <1439994561-27436-4-git-send-email-adrian.hunter@intel.com> <55D49F87.4060308@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55D49F87.4060308@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 Wed, Aug 19, 2015 at 06:23:51PM +0300, Adrian Hunter escreveu: > 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. I'll fix it up, thanks! - Arnaldo > > 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, > > }, > > }; > > > >