Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1683236

Re: [PATCH v4 2/2] perf report: Implement visual marker for macro fusion in annotate

From Arnaldo Carvalho de Melo <acme@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH v4 2/2] perf report: Implement visual marker for macro fusion in annotate
Date 2017-07-07 17:00 +0200
Message-ID <u0CTF-5qc-31@gated-at.bofh.it> (permalink)
References <u0tGF-7Fp-7@gated-at.bofh.it> <u0tGF-7Fp-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v4 2/2] perf report: Implement visual marker for macro fusion in annotate Jin Yao <yao.jin@linux.intel.com> - 2017-07-07 07:10 +0200
  Re: [PATCH v4 2/2] perf report: Implement visual marker for macro  fusion in annotate Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-07-07 17:00 +0200
    Re: [PATCH v4 2/2] perf report: Implement visual marker for macro  fusion in annotate "Jin, Yao" <yao.jin@linux.intel.com> - 2017-07-10 02:40 +0200

csiph-web