lkml.org 
[lkml]   [2011]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH -tip v3 0/6] perf: Introduce branch sub commands
(2011/04/01 23:43), Frederic Weisbecker wrote:
> On Thu, Mar 24, 2011 at 08:31:37PM +0900, Akihiro Nagai wrote:
>> Hi,
>>
>> This patch series provides the commands 'perf branch record' and 'perf branch trace'
>> version 3. These commands record and analyze a BTS (Branch Trace Store) log.
>> And, they provide the interface to use BTS log for application developers.
>>
>> BTS is a facility of Intel x86 processors, which records the address of
>> 'branch to/from' on every branch/jump instruction and interrupt.
>> This facility is very useful for developers to test their software,
>> for example, coverage test, execution path analysis, dynamic step count ...etc.
>> These test tools have a big advantage, which user doesn't have to modify target
>> executable binaries, because the BTS is a hardware feauture.
>>
>> But, there are few applications using BTS. Reasons I guess are ...
>> - Few people know what BTS is.
>> - Few people know how to use BTS on Linux box.
>> - It's hard to analyze the BTS log because it includes just a series of addresses.
>>
>> So, I want to provide a user-friendly interface to BTS for application developers.
>>
>>
>> About new sub commands
>> ========================
>> 'perf branch record' provides an easy way to record BTS log.
>> Usage is 'perf branch record<command>'. This command is just an alias to
>> 'perf record -e branches:u -c 1<command>'. But, new one is more simple and
>> more intuitive.
>>
>> 'perf branch trace' can parse and analyze recorded BTS log and print various
>> information of execution path. This command can show address, pid, command name,
>> function+offset, file path of elf.
>> You can choose the printed information with option.
>>
>> Example: 'perf branch trace'
>> function+offset
>> irq_return+0x0 => _start+0x0
>> irq_return+0x0 => _start+0x0
>> _start+0x3 => _dl_start+0x0
>> irq_return+0x0 => _dl_start+0x0
>> irq_return+0x0 => _dl_start+0x26
>> irq_return+0x0 => _dl_start+0x2d
>> _dl_start+0x71 => _dl_start+0x93
>> _dl_start+0x97 => _dl_start+0x78
>> ...
>>
>> This is the default behavior of 'perf branch trace'. It prints function+offset.
>>
>>
>> Example2: 'perf branch -cas trace'
>> command address function+offset
>> ls 0xffffffff8146fe0e irq_return+0x0 => ls 0x0000003806200b20 _start+0x0
>
> You probably want to display the comm (and/or the pid/tid) only once. Those are not
> going to change between the source and destination.
Exactly, perf_sample has only one pid/tid field.
So, pid/tid and command don't change between source and destination.
I'll remove desitination's pid/tid and command fields.
Thank you.


\
 
 \ /
  Last update: 2011-04-04 12:09    [W:0.146 / U:0.872 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site