From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755464AbcAHSB1 (ORCPT ); Fri, 8 Jan 2016 13:01:27 -0500 Received: from mail-wm0-f54.google.com ([74.125.82.54]:34779 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753460AbcAHSB0 (ORCPT ); Fri, 8 Jan 2016 13:01:26 -0500 MIME-Version: 1.0 In-Reply-To: <20160107234746.GB19314@kernel.org> References: <20160107215945.GA19314@kernel.org> <80F05A66-6943-499A-B402-96249953CD15@gmail.com> <20160107234746.GB19314@kernel.org> Date: Fri, 8 Jan 2016 10:01:24 -0800 Message-ID: Subject: Re: [RFC] perf record: missing buildid for callstack modules From: Stephane Eranian To: Arnaldo Carvalho de Melo Cc: Namhyung Kim , LKML , Jiri Olsa , Namhyung Kim , Peter Zijlstra , Ingo Molnar , Adrian Hunter , "ak@linux.intel.com" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 7, 2016 at 3:47 PM, Arnaldo Carvalho de Melo wrote: > Em Fri, Jan 08, 2016 at 07:47:03AM +0900, Namhyung Kim escreveu: >> On January 8, 2016 7:00:35 AM GMT+09:00, Stephane Eranian wrote: >> >On Thu, Jan 7, 2016 at 1:59 PM, Arnaldo Carvalho de Melo >> > wrote: >> >> Em Thu, Jan 07, 2016 at 01:56:14PM -0800, Stephane Eranian escreveu: >> >>> Hi, >> >>> >> >>> Whenever you do: >> >>> >> >>> $ perf record -g -a sleep 10 >> >>> >> >>> Perf will collect the callstack for each sample. At the end of the >> >>> run, perf record >> >>> adds the buildid for all dso with at least one sample. But when it >> >does this, it >> >>> only looks at the sampled IP and ignore the modules traversed by the >> >callstack. >> >>> That means that, it is not possible to uniquely identify the modules >> >executed, >> >>> unless they had at least one IP sample captured. But this is not >> >>> always the case. >> >>> >> >>> How about providing an option to perf record to force collecting >> >>> buildid for all IPs >> >>> captured in the callstack? I understand that would cost more at the >> >end of the >> >>> collection, but this would be beneficial to several monitoring >> >scenarios. >> >> >> >> I agree, would consider applying a patch that provides the option but >> >> does not do this by default. >> >> >> >I agree, not the default. >> >> Hi Stephane, >> >> Please see >> >> https://lkml.org/lkml/2015/3/22/249 > > > Oops, Stephane, please try this, so that we can finally merge it :-\ > I will try it today. However, I am a bit worried about the performance impact. Unless I am missing something in this approach we may end up looking up N times the same module if it appears in N callstacks. In Andi's suggested approach, there would be only one pass at the beginning (or the end of the run). But you could miss some modules if they are gone by the time you run the pass.