From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
peterz@infradead.org, Ingo Molnar <mingo@kernel.org>,
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 v4 2/2] perf report: Implement visual marker for macro fusion in annotate
Date: Fri, 7 Jul 2017 11:51:11 -0300 [thread overview]
Message-ID: <20170707145111.GS27350@kernel.org> (raw)
In-Reply-To: <1499403995-19857-3-git-send-email-yao.jin@linux.intel.com>
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
next prev parent reply other threads:[~2017-07-07 14:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-07 5:06 [PATCH v4 0/2] perf report: Implement visual marker for macro fusion in annotate Jin Yao
2017-07-07 5:06 ` [PATCH v4 1/2] perf util: Check for fused instruction Jin Yao
2017-07-20 8:36 ` [tip:perf/core] perf annotate: Check for fused instructions tip-bot for Jin Yao
2017-07-07 5:06 ` [PATCH v4 2/2] perf report: Implement visual marker for macro fusion in annotate Jin Yao
2017-07-07 14:51 ` Arnaldo Carvalho de Melo [this message]
2017-07-10 0:31 ` Jin, Yao
2017-07-20 8:36 ` [tip:perf/core] perf annotate: Implement visual marker for macro fusion tip-bot for 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=20170707145111.GS27350@kernel.org \
--to=acme@kernel.org \
--cc=Linux-kernel@vger.kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=yao.jin@intel.com \
--cc=yao.jin@linux.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;
as well as URLs for NNTP newsgroup(s).