Subject: Re: Perf not resolving all symbols, showing 0x7ffffxxx

From: Benjamin Herrenschmidt <[email-masked]>
Date: Tue, 15 Oct 2013 10:30:09 -0500

On Tue, 2013-10-15 at 09:59 -0400, Martin Hicks wrote:
> I've tracked the start of the strange instruction pointers in 'perf
> report' to a commit by Anton:
> 
> commit 75382aa72f06823db7312ad069c3bae2eb3f8548
> Author: Anton Blanchard <[email-masked]>
> Date:   Tue Jun 26 01:01:36 2012 +0000
> 
>     powerpc/perf: Move code to select SIAR or pt_regs into perf_read_regs
> 
> I don't know enough about PPC to know what's going on, but reverting
> the changes to perf_instruction_pointer() gets me reasonable 'perf
> report' output with 3.11.

This is an e300 core right ? (603...). Do that have an SIAR at all
(Scott ?)

Cheers,
Ben.

> Thanks,
> mh
> 
> 
> On Thu, Oct 3, 2013 at 10:21 AM, Martin Hicks <[email-masked]> wrote:
> > Hi,
> >
> > I've been trying to track down a performance regression that started
> > leading up to the v3.6 kernel, and while doing this I've been
> > gathering perf data on v3.6-rc and comparing it to v3.11 perf reports
> > of the same workload.
> >
> > With v3.6-rc kernels I get all symbols resolved like this:
> >
> > # Events: 39K cpu-clock-msecs
> > #
> > # Overhead      Command           Shared Object
> >             Symbol
> > # ........  ...........  ......................
> > ........................................
> > #
> >      9.69%         nfsd  [kernel.kallsyms]       [k] csum_partial
> >      5.64%         nfsd  [kernel.kallsyms]       [k] __do_softirq
> >      3.12%         nfsd  [sunrpc]                [k] svc_create
> >      2.38%         nfsd  [kernel.kallsyms]       [k] __queue_work
> >      1.91%         nfsd  [gianfar_driver]        [k] gfar_poll
> >      1.73%         nfsd  [kernel.kallsyms]       [k] memset
> >      1.54%         nfsd  [nfsd]                  [k] nfsd_vfs_read.isra.16
> >      1.40%  ksoftirqd/0  [kernel.kallsyms]       [k] finish_task_switch.isra.54
> >      1.30%         nfsd  [kernel.kallsyms]       [k] get_page_from_freelist
> >      1.21%         nfsd  [gianfar_driver]        [k] gfar_start_xmit
> >      1.20%         nfsd  [sunrpc]                [k] svc_xprt_received
> >
> >
> > But when I perf on v3.11 kernels I see a lot of unresolved symbols:
> >
> > # Events: 69K cpu-clock-msecs
> > #
> > # Overhead       Command          Shared Object
> >        Symbol
> > # ........  ............  .....................
> > ...................................
> > #
> >     73.80%          nfsd  [unknown]              [k] 0x7ffff7fa
> >      7.57%          nfsd  [kernel.kallsyms]      [k] csum_partial
> >      4.59%   kworker/0:1  [unknown]              [k] 0x7ffff832
> >      3.76%   ksoftirqd/0  [unknown]              [k] 0x7ffff96e
> >      0.94%       kswapd0  [unknown]              [k] 0x7ffffcc2
> >      0.92%       swapper  [unknown]              [k] 0x7ffffa54
> >      0.62%          nfsd  [kernel.kallsyms]      [k] __udp4_lib_lookup
> >      0.49%          nfsd  [kernel.kallsyms]      [k] ip_append_page
> >      0.48%          nfsd  [kernel.kallsyms]      [k] __do_softirq
> >      0.36%      eventmon  [unknown]              [k] 0x7ffff9c4
> >      0.32%          nfsd  [kernel.kallsyms]      [k] __getnstimeofday
> >
> >
> > Any ideas?  Have I overlooked some necessary kernel config change?
> > Does perf need some binary that I may not have installed on this
> > embedded platform?
> >
> > Freescale mpc8379 (e300c4)
> > Gcc-4.7.2 uClibC built with ct-ng 1.18.0
> > binutils 2.22
> >
> > Thanks,
> > mh
> >
> > --
> > Martin Hicks P.Eng.      |         [email-masked]
> > Bork Consulting Inc.     |   +1 (613) 266-2296
> 
> 
>