public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Jin, Yao" <yao.jin@linux.intel.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: acme@kernel.org, jolsa@kernel.org, peterz@infradead.org,
	mingo@redhat.com, alexander.shishkin@linux.intel.com,
	Linux-kernel@vger.kernel.org, ak@linux.intel.com,
	kan.liang@intel.com, yao.jin@intel.com
Subject: Re: [PATCH v2 6/7] perf diff: Print the basic block cycles diff
Date: Thu, 6 Jun 2019 12:06:49 +0800	[thread overview]
Message-ID: <703e4f0d-a32e-df8b-41de-89bcb890e0a5@linux.intel.com> (raw)
In-Reply-To: <20190605114408.GA5868@krava>



On 6/5/2019 7:44 PM, Jiri Olsa wrote:
> On Mon, Jun 03, 2019 at 10:36:16PM +0800, Jin Yao wrote:
>> perf record -b ./div
>> perf record -b ./div
>>
>> Following is the default perf diff output
>>
>>   # perf diff
>>
>>   # Event 'cycles'
>>   #
>>   # Baseline  Delta Abs  Shared Object     Symbol
>>   # ........  .........  ................  ....................................
>>   #
>>       49.03%     +0.30%  div               [.] main
>>       16.29%     -0.20%  libc-2.23.so      [.] __random
>>       18.82%     -0.07%  libc-2.23.so      [.] __random_r
>>        8.11%     -0.04%  div               [.] compute_flag
>>        2.25%     +0.01%  div               [.] rand@plt
>>        0.00%     +0.01%  [kernel.vmlinux]  [k] task_tick_fair
>>        5.46%     +0.01%  libc-2.23.so      [.] rand
>>        0.01%     -0.01%  [kernel.vmlinux]  [k] native_irq_return_iret
>>        0.00%     -0.00%  [kernel.vmlinux]  [k] interrupt_entry
>>
>> This patch creates a new computation selection 'cycles'.
>>
>>   # perf diff -c cycles
>>
>>   # Event 'cycles'
>>   #
>>   # Baseline         Block cycles diff [start:end]  Shared Object     Symbol
>>   # ........  ....................................  ................  ....................................
>>   #
>>       49.03%        -9 [         4ef:         520]  div               [.] main
>>       49.03%         0 [         4e8:         4ea]  div               [.] main
>>       49.03%         0 [         4ef:         500]  div               [.] main
>>       49.03%         0 [         4ef:         51c]  div               [.] main
>>       49.03%         0 [         4ef:         535]  div               [.] main
>>       18.82%         0 [       3ac40:       3ac4d]  libc-2.23.so      [.] __random_r
>>       18.82%         0 [       3ac40:       3ac5c]  libc-2.23.so      [.] __random_r
>>       18.82%         0 [       3ac40:       3ac76]  libc-2.23.so      [.] __random_r
>>       18.82%         0 [       3ac40:       3ac88]  libc-2.23.so      [.] __random_r
>>       18.82%         0 [       3ac90:       3ac9c]  libc-2.23.so      [.] __random_r
>>       16.29%        -8 [       3aac0:       3aac0]  libc-2.23.so      [.] __random
>>       16.29%         0 [       3aac0:       3aad2]  libc-2.23.so      [.] __random
>>       16.29%         0 [       3aae0:       3aae7]  libc-2.23.so      [.] __random
>>       16.29%         0 [       3ab03:       3ab0f]  libc-2.23.so      [.] __random
>>       16.29%         0 [       3ab14:       3ab1b]  libc-2.23.so      [.] __random
>>       16.29%         0 [       3ab28:       3ab2e]  libc-2.23.so      [.] __random
>>       16.29%         0 [       3ab4a:       3ab53]  libc-2.23.so      [.] __random
>>        8.11%         0 [         640:         644]  div               [.] compute_flag
>>        8.11%         0 [         649:         659]  div               [.] compute_flag
>>        5.46%         0 [       3af60:       3af60]  libc-2.23.so      [.] rand
>>        5.46%         0 [       3af60:       3af64]  libc-2.23.so      [.] rand
>>        2.25%         0 [         490:         490]  div               [.] rand@plt
>>        0.01%        26 [      c00a27:      c00a27]  [kernel.vmlinux]  [k] native_irq_return_iret
>>        0.00%      -157 [      2bf9f2:      2bfa63]  [kernel.vmlinux]  [k] update_blocked_averages
>>        0.00%       -56 [      2bf980:      2bf9d3]  [kernel.vmlinux]  [k] update_blocked_averages
>>        0.00%        48 [      2bf934:      2bf942]  [kernel.vmlinux]  [k] update_blocked_averages
>>        0.00%         3 [      2bfb38:      2bfb67]  [kernel.vmlinux]  [k] update_blocked_averages
>>        0.00%         0 [      2bf968:      2bf97b]  [kernel.vmlinux]  [k] update_blocked_averages
>>
> 
> so what I'd expect would be Baseline column with cycles and another
> column showing the differrence (in cycles) for given symbol
> 
>> "[start:end]" indicates the basic block range. The output is sorted
>> by "Baseline" and the basic blocks in the same function are sorted
>> by cycles diff.
> 
> hum, why is there multiple basic blocks [start:end] for a symbol?
> 
> thanks,
> jirka
> 

The basic block is the code between 2 branches (for one branch, for 
example, jmp, call, ret, interrupt, ...). So it's expected that one 
function (symbol is function) may contain multiple basic blocks.

The idea is, sorting by baseline to display the hottest functions and 
the second column shows the cycles diff of blocks in this function 
(comparing between different perf data files). This would allow to 
identify performance changes in specific code accurately and effectively.

Thanks
Jin Yao



  reply	other threads:[~2019-06-06  4:06 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-03 14:36 [PATCH v2 0/7] perf diff: diff cycles at basic block level Jin Yao
2019-06-03  6:51 ` Jin, Yao
2019-06-03 14:36 ` [PATCH v2 1/7] perf util: Create block_info structure Jin Yao
2019-06-03 14:36 ` [PATCH v2 2/7] perf util: Add block_info in hist_entry Jin Yao
2019-06-03 14:36 ` [PATCH v2 3/7] perf diff: Check if all data files with branch stacks Jin Yao
2019-06-03 14:36 ` [PATCH v2 4/7] perf diff: Use hists to manage basic blocks per symbol Jin Yao
2019-06-05 11:44   ` Jiri Olsa
2019-06-06  1:15     ` Jin, Yao
2019-06-08 11:41     ` Jin, Yao
2019-06-11  2:22       ` Jin, Yao
2019-06-11  8:56       ` Jiri Olsa
2019-06-12  6:11         ` Jin, Yao
2019-06-12  7:44           ` Jiri Olsa
2019-06-12 12:54             ` Jin, Yao
2019-06-05 11:44   ` Jiri Olsa
2019-06-06  1:26     ` Jin, Yao
2019-06-05 11:44   ` Jiri Olsa
2019-06-06  1:57     ` Jin, Yao
2019-06-03 14:36 ` [PATCH v2 5/7] perf diff: Link same basic blocks among different data files Jin Yao
2019-06-03 14:36 ` [PATCH v2 6/7] perf diff: Print the basic block cycles diff Jin Yao
2019-06-05 11:44   ` Jiri Olsa
2019-06-06  4:06     ` Jin, Yao [this message]
2019-06-05 11:44   ` Jiri Olsa
2019-06-06  2:02     ` Jin, Yao
2019-06-03 14:36 ` [PATCH v2 7/7] perf diff: Documentation -c cycles option Jin Yao
2019-06-05 11:44 ` [PATCH v2 0/7] perf diff: diff cycles at basic block level Jiri Olsa
2019-06-06  1:05   ` Jin, Yao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=703e4f0d-a32e-df8b-41de-89bcb890e0a5@linux.intel.com \
    --to=yao.jin@linux.intel.com \
    --cc=Linux-kernel@vger.kernel.org \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=kan.liang@intel.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=yao.jin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox