From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752234Ab2ATH7Z (ORCPT ); Fri, 20 Jan 2012 02:59:25 -0500 Received: from mail4.hitachi.co.jp ([133.145.228.5]:55521 "EHLO mail4.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751187Ab2ATH7X (ORCPT ); Fri, 20 Jan 2012 02:59:23 -0500 X-AuditID: b753bd60-96f90ba000007b1b-b1-4f191ed8e9f2 X-AuditID: b753bd60-96f90ba000007b1b-b1-4f191ed8e9f2 Message-ID: <4F191ED0.8070305@hitachi.com> Date: Fri, 20 Jan 2012 16:59:12 +0900 From: Akihiro Nagai User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: Frederic Weisbecker Cc: Arnaldo Carvalho de Melo , Ingo Molnar , Peter Zijlstra , David Ahern , linux-kernel@vger.kernel.org, Masami Hiramatsu , yrl.pp-manager.tt@hitachi.com Subject: Re: [PATCH -tip v4 0/5] perf script: add BTS analysis features References: <20120116052146.2485.48349.stgit@linux3> <20120118114833.GB1024@somewhere.redhat.com> In-Reply-To: <20120118114833.GB1024@somewhere.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (2012/01/18 20:48), Frederic Weisbecker wrote: > On Mon, Jan 16, 2012 at 02:21:46PM +0900, Akihiro Nagai wrote: >> Hi Frederic, David, >> >> This patch series adds the functions to analyze BTS logs to perf-script and, >> makes perf-script more informative version 4. >> The patches add the following functions. >> - Unify the expression to "[unknown]" >> - Fix BTS record header to resolve DSOs and symbols of user-space >> - Resolve DSOs and symbols for BTS's branch_from addresses >> - Show the offset of symbols with the 'offs' field specifier. >> - Resolve the real path of [kernel.kallsym] using >> '--show-kernel-path' option. >> >> Usage: >> First, get the BTS log with the following command. >> # perf record -e branches:u -c 1 -d >> >> Second, analyze that trace data. >> # perf script -f ip,addr,sym,offs,dso [--show-kernel-path] >> This command's output format is: >> >> >> Output sample: >> # perf record -e branches:u -c 1 -d ls >> [snip] >> # perf script -f ip,addr,sym,dso,offs --show-kernel-path >> [snip] >> 402c1c main+0x0 (/root/bin/ls) 3430c21399 __libc_start_main+0xe9 (/lib64/libc-2.14.so) > > I was confused first, looking for the reason why we have a so strange branch flow > until I realized the format is "to from". > > Can we have "from to" instead? This will be much more intuitive. "from => to" would be even better. Exactly. perf records branch_to information in perf_sample->addr, and branch_from in perf_sample->ip. And, currently I use the generic function: process_event() in builtin-script.c to print branch information. This function prints perf_sample->addr before it prints perf_sample->ip. So, I'm going to add the bts specialized codes to process_event(). static void process_event(...) { print_sample_start(sample, thread, attr); if (is_bts_event(attr)) { print_sample_bts(...); return; } if (PRINT_FIELD(TRACE)) } Thank you. > > Thanks! > >> 40b390 set_program_name+0x0 (/root/bin/ls) 402c41 main+0x25 (/root/bin/ls) >> 40b390 set_program_name+0x0 (/root/bin/ls) ffffffff814ac5ed irq_return+0x0 (/lib/modules/3.2.0+/build/vmlinux) >> 401e20 strrchr@plt+0x0 (/root/bin/ls) 40b39e set_program_name+0xe (/root/bin/ls) >> 401e26 strrchr@plt+0x6 (/root/bin/ls) 401e20 strrchr@plt+0x0 (/root/bin/ls) >> 401b80 _init+0x18 (/root/bin/ls) 401e2b strrchr@plt+0xb (/root/bin/ls) >> 3430813850 _dl_runtime_resolve+0x0 (/lib64/ld-2.14.so) 401b86 _init+0x1e (/root/bin/ls) >> [snip] >