Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755005AbZKWOcy (ORCPT ); Mon, 23 Nov 2009 09:32:54 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754567AbZKWOcx (ORCPT ); Mon, 23 Nov 2009 09:32:53 -0500 Received: from bombadil.infradead.org ([18.85.46.34]:54697 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753987AbZKWOcx (ORCPT ); Mon, 23 Nov 2009 09:32:53 -0500 Date: Mon, 23 Nov 2009 12:32:36 -0200 From: Arnaldo Carvalho de Melo To: Ingo Molnar Cc: Li Zefan , Pekka Enberg , Frederic Weisbecker , Steven Rostedt , Peter Zijlstra , Eduard - Gabriel Munteanu , LKML , "linux-mm@kvack.org" Subject: Re: [RFC][PATCH 1/2] perf: Add 'perf kmem' tool Message-ID: <20091123143236.GB15547@ghostprotocols.net> References: <20091120081440.GA19778@elte.hu> <84144f020911200019p4978c8e8tc593334d974ee5ff@mail.gmail.com> <20091120083053.GB19778@elte.hu> <4B0657A4.2040606@cs.helsinki.fi> <4B06590C.7010109@cn.fujitsu.com> <20091120090353.GE19778@elte.hu> <20091120144215.GH18283@ghostprotocols.net> <20091120164110.GA24183@elte.hu> <20091120175228.GD27926@ghostprotocols.net> <20091123065110.GC31758@elte.hu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20091123065110.GC31758@elte.hu> X-Url: http://oops.ghostprotocols.net:81/blog User-Agent: Mutt/1.5.19 (2009-01-05) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3689 Lines: 78 Em Mon, Nov 23, 2009 at 07:51:10AM +0100, Ingo Molnar escreveu: > > * Arnaldo Carvalho de Melo wrote: > > > Em Fri, Nov 20, 2009 at 05:41:10PM +0100, Ingo Molnar escreveu: > > > > So we have a mechanism that is already present in several distros > > > > (build-id), that is in the kernel build process since ~2.6.23, and that > > > > avoids using mismatching DSOs when resolving symbols. > > > > > > But what do we do if we have another box that runs say on a MIPS CPU, > > > uses some minimal distro - and copy that perf.data over to an x86 box. > > > > There would be no problem, it would be just a matter of installing the > > right -debuginfo packages, for MIPS. > > I havent tried this - is this really possible to do on an x86 box, with > a typical distro? Can i install say Fedora PowerPC debuginfo packages on > an x86 box, while also having the x86 debuginfo packages there? I should have added "in theory", as I haven't tested this as well using the current tools, but it should :) > > Or the original, unstripped FS image sent to the machine with the MIPS > > cpu, if there aren't -debuginfo packages. > > > > Either one, the right DSOs would be found by the buildids. > > > > There are other scenarios, like a binary that gets updated while a long > > running perf record session runs, the way to differentiate between the > > two DSOs wouldn't be the name, but the buildid. > > > > > The idea is there to be some new mode of perf.data where all the > > > relevant DSO contents (symtabs but also sections with instructions for > > > perf annotate to work) are copied into perf.data, during or after data > > > capture - on the box that does the recording. > > > > > > Once we have everything embedded in the perf.data, analysis passes only > > > have to work based on that particular perf.data - no external data. > > > > Well, we can that, additionally, but think about stripped binaries, we > > would lose potentially a lot because the symtabs on that small machine > > would have poorer symtabs than the ones in an unstriped binary (or in > > a -debuginfo package). > > We should definitely use the widest and best quality information we can > - if it's available. > > So even if we 'inline' any information from the box, if there's better > info available at the time of analysis, we should use that too. > > Basically what matters is the principle of 'what is possible'. > > If a user records on a box and analyses on a different box, and we end > up not doing something (and printing an error or displaying an empty > profile) that could reasonably have been done, then the user will be > unhappy and we might lose that user. > > The user wont be unhappy about us using a big set of data sources that > we can recover information from transparently. The user will be unhappy > if we insist on (and force) a certain form of information source - such > as debuginfo. Sure thing, I'm thinking about how to encode the perf.data file inside an ELF section while merging all symtabs to reduce size by sharing the strings table, etc. The dso__load routine already does that fallback from what is best (debuginfo packages) to what is available (the symtab, dynsym tables in the DSO itself), its just a matter of efficiently encoding the symtabs into the perf.data file and that will be another source of symbols if the preferred one (debuginfo) is not available. - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/