lkml.org 
[lkml]   [2017]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v4 2/2] perf report: Implement visual marker for macro fusion in annotate
Em Fri, Jul 07, 2017 at 01:06:35PM +0800, Jin Yao escreveu:
> For marking the fused instructions clearly, This patch adds a line
> before the first instruction of pair and joins it with the arrow of the
> jump.
>
> For example, when je is selected in annotate view, the line before cmpl
> is displayed and joins the arrow of je.
>
> │ ┌──cmpl $0x0,argp_program_version_hook
> 81.93 │ ├──je 20
> │ │ lock cmpxchg %esi,0x38a9a4(%rip)
> │ │↓ jne 29
> │ │↓ jmp 43
> 11.47 │20:└─→cmpxch %esi,0x38a999(%rip)
>
> That means the cmpl+je is fused instruction pair and they should be
> considered together.

I applied this one, no unnecessary parsing of cpuid done at each
jump->target arrow rendering, much better, thanks!

One thing for a follow up patch:

We have this when the cursor is at a jump instruction:

│ ┌──test %ecx,%ecx
-> │ ├──je 714cf
│ │ mov LINES+0xb40,%edx
│ │ test %edx,%edx
│ │↓ je 71580
│714cf:└─→mov LINES+0x10c8,%eax

But if we go up a line, to that "test" instruction, we get:

-> │ test %ecx,%ecx
│ ↓ je 714cf
│ mov LINES+0xb40,%edx
│ test %edx,%edx
│ ↓ je 71580
│714cf: mov LINES+0x10c8,%eax

I suggest that this be changed to:

-> │ ┌─test %ecx,%ecx
│ ↓ je 714cf
│ mov LINES+0xb40,%edx
│ test %edx,%edx
│ ↓ je 71580
│714cf: mov LINES+0x10c8,%eax

I.e. even before going to the jump instruction line with the cursor, we
would see the fused instructions.

To do that perhaps we should improve annotate_browser__draw_current_jump
to improve that part that looks for is_valid_jump() to consider
instructions that could be fused with jumps for the machine where the
perf data came from, etc.

But the current situation is better already, thanks for your work,
applied!

- Arnaldo

\
 
 \ /
  Last update: 2017-07-07 16:52    [W:0.097 / U:1.412 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site