linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	linux-kernel@vger.kernel.org, David Ahern <dsahern@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Mike Galbraith <efault@gmx.de>, Namhyung Kim <namhyung@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH V5 3/9] perf tools: workaround objdump difficulties with kcore
Date: Wed, 9 Oct 2013 12:12:49 +0200	[thread overview]
Message-ID: <20131009101249.GC1005@krava.redhat.com> (raw)
In-Reply-To: <525506C5.3020101@intel.com>

On Wed, Oct 09, 2013 at 10:33:25AM +0300, Adrian Hunter wrote:
> On 08/10/13 17:02, Jiri Olsa wrote:
> > On Tue, Oct 08, 2013 at 11:45:50AM +0300, Adrian Hunter wrote:
> >> objdump fails to annotate module symbols when looking
> >> at kcore.  Workaround this by extracting object code
> >> from kcore and putting it in a temporary file for
> >> objdump to use instead.  The temporary file is created
> >> to look like kcore but contains only the function
> >> being disassembled.
> > 
> > Excited to ses this one, but looks like I'm hitting some
> > issue.  All annotation starts for me like this:
> > 
> >                                                                                                        ▒
> >        │              Disassembly of section load0:                                                            ▒
> >        │                                                                                                       ▒
> >        │              ffffffff815eee80 <load0>:                                                                ◆
> >   9.33 │ffffffff815eee80:   data32 data32 data32 xchg %ax,%ax                                                  
> > 
> > 
> > which does not seem right
> 
> Can you tell me the commits of the kernel and perf tools you
> were using, plus the commands and what symbol it was?

kernel: 3.9.10-100.fc17.x86_64
perf:   latest acme's perf/core (06de626 perf evlist: Fix perf_evlist__mmap_read event overflow )
        plus your V5 patches

commands:
  sudo ./perf record -e cycles:k -a 
  sudo ./perf report

---
Samples: 2K of event 'cycles:k', Event count (approx.): 445188286                                               
 14.73%          swapper  [kernel.kallsyms]   [k] intel_idle                                                   ◆
  3.19%                X  [kernel.kallsyms]   [k] smp_call_function_many                                       ▒
  1.58%                X  [kernel.kallsyms]   [k] i915_gem_write_fence__ipi                                    ▒
  1.58%          swapper  [kernel.kallsyms]   [k] iwl_trans_pcie_read32                                        ▒


annotation of 1st 4 symbols:

---
intel_idle  /proc/kcore                                                                                         
       │                                                                                                       ▒
       │                                                                                                       ▒
       │                                                                                                       ▒
       │     Disassembly of section load0:                                                                     ▒
       │                                                                                                       ▒
       │     ffffffff8135f490 <load0>:                                                                         ▒
  1.18 │       data32 data32 data32 xchg %ax,%ax                                                               ▒


---
smp_call_function_many  /proc/kcore                                                                             
       │                                                                                                       ◆
       │                                                                                                       ▒
       │                                                                                                       ▒
       │     Disassembly of section load0:                                                                     ▒
       │                                                                                                       ▒
       │     ffffffff810bc270 <load0>:                                                                         ▒
       │       data32 data32 data32 xchg %ax,%ax                                                               ▒

---
i915_gem_write_fence__ipi  /proc/kcore                                                                          
       │
       │
       │
       │    Disassembly of section load0:
       │
       │    ffffffffa0086630 <load0>:
       │      data32 data32 data32 xchg %ax,%ax

---
iwl_trans_pcie_read32  /proc/kcore                                                                              
       │
       │
       │
       │    Disassembly of section load0:
       │
       │    ffffffffa0414a50 <load0>:
       │      data32 data32 data32 xchg %ax,%ax


the rest of the instruction decode differs.. just the first
line is same for all

addresses seem ok:

[jolsa@krava perf]$ egrep 'ffffffff8135f490|ffffffff810bc270|ffffffffa0086630|ffffffffa0414a50' /proc/kallsyms 
ffffffff810bc270 T smp_call_function_many
ffffffff8135f490 t intel_idle
ffffffffa0414a50 t iwl_trans_pcie_read32        [iwlwifi]
ffffffffa0086630 t i915_gem_write_fence__ipi    [i915]

so.. the name of the section, name of the <function> plus the first
instruction decode seem wrong.. I can see that in every symbol I
annotate in the report and in annotate command as well.

jirka

  reply	other threads:[~2013-10-09 10:13 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-08  8:45 [PATCH V5 0/9] perf tools: kcore improvements Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 1/9] perf tools: make a separate function to parse /proc/modules Adrian Hunter
2013-10-15  5:31   ` [tip:perf/core] perf symbols: Make a separate function to parse / proc/modules tip-bot for Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 2/9] perf tools: validate kcore module addresses Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 3/9] perf tools: workaround objdump difficulties with kcore Adrian Hunter
2013-10-08 14:02   ` Jiri Olsa
2013-10-09  7:33     ` Adrian Hunter
2013-10-09 10:12       ` Jiri Olsa [this message]
2013-10-09 10:38         ` Adrian Hunter
2013-10-09 12:16           ` Jiri Olsa
2013-10-09 12:43             ` Adrian Hunter
2013-10-08 15:56   ` Arnaldo Carvalho de Melo
2013-10-08  8:45 ` [PATCH V5 4/9] perf tools: add map__find_other_map_symbol() Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 5/9] perf tools: fix annotate_browser__callq() Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 6/9] perf tools: find kcore symbols on other maps Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 7/9] perf tools: add copyfile_mode() Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 8/9] perf buildid-cache: add ability to add kcore to the cache Adrian Hunter
2013-10-08  8:45 ` [PATCH V5 9/9] perf tools: add ability to find kcore in build-id cache Adrian Hunter

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=20131009101249.GC1005@krava.redhat.com \
    --to=jolsa@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@ghostprotocols.net \
    --cc=adrian.hunter@intel.com \
    --cc=dsahern@gmail.com \
    --cc=efault@gmx.de \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@gmail.com \
    --cc=paulus@samba.org \
    /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).