From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Jin Yao <yao.jin@linux.intel.com>
Cc: 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 v5 2/3] perf report: Support interactive annotation of code without symbols
Date: Wed, 18 Mar 2020 12:43:58 -0300 [thread overview]
Message-ID: <20200318154358.GH11531@kernel.org> (raw)
In-Reply-To: <20200318154206.GG11531@kernel.org>
Em Wed, Mar 18, 2020 at 12:42:06PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Feb 27, 2020 at 12:39:38PM +0800, Jin Yao escreveu:
> > For perf report on stripped binaries it is currently impossible to do
> > annotation. The annotation state is all tied to symbols, but there are
> > either no symbols, or symbols are not covering all the code.
> >
> > We should support the annotation functionality even without symbols.
> >
> > This patch fakes a symbol and the symbol name is the string of address.
> > After that, we just follow current annotation working flow.
> >
> > For example,
> >
> > 1. perf report
> >
> > Overhead Command Shared Object Symbol
> > 20.67% div libc-2.27.so [.] __random_r
> > 17.29% div libc-2.27.so [.] __random
> > 10.59% div div [.] 0x0000000000000628
> > 9.25% div div [.] 0x0000000000000612
> > 6.11% div div [.] 0x0000000000000645
> >
> > 2. Select the line of "10.59% div div [.] 0x0000000000000628" and ENTER.
> >
> > Annotate 0x0000000000000628
> > Zoom into div thread
> > Zoom into div DSO (use the 'k' hotkey to zoom directly into the kernel)
> > Browse map details
> > Run scripts for samples of symbol [0x0000000000000628]
> > Run scripts for all samples
> > Switch to another data file in PWD
> > Exit
> >
> > 3. Select the "Annotate 0x0000000000000628" and ENTER.
> >
> > Percent│
> > │
> > │
> > │ Disassembly of section .text:
> > │
> > │ 0000000000000628 <.text+0x68>:
> > │ divsd %xmm4,%xmm0
> > │ divsd %xmm3,%xmm1
> > │ movsd (%rsp),%xmm2
> > │ addsd %xmm1,%xmm0
> > │ addsd %xmm2,%xmm0
> > │ movsd %xmm0,(%rsp)
> >
> > Now we can see the dump of object starting from 0x628.
>
> Testing this I noticed this discrepancy when using 'o' in the annotate
> view to see the address columns:
>
> Samples: 10K of event 'cycles', 4000 Hz, Event count (approx.): 7738221585
> 0x0000000000ea8b97 /usr/libexec/gcc/x86_64-redhat-linux/9/cc1 [Percent: local period]
> Percent│ ▒
> │ ▒
> │ ▒
> │ Disassembly of section .text: ▒
> │ ◆
> │ 00000000012a8b97 <linemap_get_expansion_line@@Base+0x227>: ▒
> │12a8b97: cmp %rax,(%rdi) ▒
> │12a8b9a: ↓ je 12a8ba0 <linemap_get_expansion_line@@Base+0x230> ▒
> │12a8b9c: xor %eax,%eax ▒
> │12a8b9e: ← retq ▒
> │12a8b9f: nop ▒
> │12a8ba0: mov 0x8(%rsi),%edx
>
>
>
> See that 0x0000000000ea8b97 != 12a8b97
>
> How can we explain that?
On another machine, in 'perf top', its ok, the same address appears on
the second line and in the first line in the disassembled code.
I'm applying the patch,
- Arnaldo
next prev parent reply other threads:[~2020-03-18 15:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-27 4:39 [PATCH v5 0/3] perf report: Support annotation of code without symbols Jin Yao
2020-02-27 4:39 ` [PATCH v5 1/3] perf util: Print al_addr when symbol is not found Jin Yao
2020-04-04 8:42 ` [tip: perf/urgent] perf report: " tip-bot2 for Jin Yao
2020-02-27 4:39 ` [PATCH v5 2/3] perf report: Support interactive annotation of code without symbols Jin Yao
2020-03-18 15:42 ` Arnaldo Carvalho de Melo
2020-03-18 15:43 ` Arnaldo Carvalho de Melo [this message]
2020-03-18 15:46 ` Arnaldo Carvalho de Melo
2020-03-19 1:11 ` Jin, Yao
2020-03-19 0:56 ` Jin, Yao
2020-03-19 0:49 ` Jin, Yao
2020-04-04 8:42 ` [tip: perf/urgent] " tip-bot2 for Jin Yao
2020-02-27 4:39 ` [PATCH v5 3/3] perf report: Support hotkey 'a' on address for annotation Jin Yao
2020-04-04 8:42 ` [tip: perf/urgent] perf report/top TUI: Support hotkey 'a' for annotation of unresolved addresses tip-bot2 for Jin Yao
2020-03-02 4:08 ` [PATCH v5 0/3] perf report: Support annotation of code without symbols Ravi Bangoria
2020-03-02 12:51 ` Jiri Olsa
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=20200318154358.GH11531@kernel.org \
--to=arnaldo.melo@gmail.com \
--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@redhat.com \
--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).