lkml.org 
[lkml]   [2013]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH V5 3/9] perf tools: workaround objdump difficulties with kcore
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2013-10-09 12:21    [W:0.082 / U:3.240 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site