All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Milian Wolff <milian.wolff@kdab.com>
Cc: David Ahern <dsahern@gmail.com>,
	Mark Davis <markdavisinboston@gmail.com>,
	linux-perf-users@vger.kernel.org
Subject: Re: Missing stack symbols with perf_event's perf report, despite -fno-omit-frame-pointer compilation
Date: Mon, 25 Apr 2016 22:03:58 -0300	[thread overview]
Message-ID: <20160426010358.GD16708@kernel.org> (raw)
In-Reply-To: <1704384.MQzPvE4Oa5@milian-kdab2>

Em Mon, Apr 25, 2016 at 11:01:54AM +0200, Milian Wolff escreveu:
> On Monday, April 18, 2016 6:18:45 PM CEST David Ahern wrote:
> > On 4/18/16 6:07 PM, Mark Davis wrote:
> > >     Auto-detecting system features:
> > >      ...                     backtrace: [ on  ]
> > >      ...                         dwarf: [ OFF ]
> > >      ...                fortify-source: [ on  ]
> > >      ...                         glibc: [ on  ]
> > >      ...                          gtk2: [ on  ]
> > >      ...                  gtk2-infobar: [ on  ]
> > >      ...                      libaudit: [ OFF ]
> > >      ...                        libbfd: [ OFF ]
> > >      ...                        libelf: [ OFF ]

> > Install those 2 development packages.
 
> And if that is still not helping, you may run into the case where the samples 
> are recorded in a library (like libstdc++, libc,...) which was provided by 
> your distribution without frame pointers. In such a case, the backtrace will 
> still be broken.
 
> If you want to use frame pointers, and operate on user space code, my advise 
> is to recompile all dependencies with frame pointers. On Yocto/Gentoo that is 
> easily doable, elsewhere you'll have a hard time and waste a ton of time.
> I suggest you simply use Dwarf unwinding.

Please try '--call-graph lbr' to check if your hardware has LBR, will be
much cheaper than callchains.

For instance:

[acme@jouet linux]$ perf record --call-graph lbr usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.018 MB perf.data (9 samples) ]
[acme@jouet linux]$ perf evlist -v
cycles:ppp: size: 112, { sample_period, sample_freq }: 4000,
sample_type: IP|TID|TIME|CALLCHAIN|PERIOD|BRANCH_STACK, disabled: 1,
inherit: 1, mmap: 1, comm: 1, freq: 1, enable_on_exec: 1, task: 1,
precise_ip: 3, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec:
1, branch_sample_type: USER|CALL_STACK|NO_FLAGS|NO_CYCLES
[acme@jouet linux]$

-   59.69%  usleep   [kernel]  [k] vma_interval_tree_insert
    →vma_interval_tree_insert  [kernel]
     vma_adjust                [kernel]
     __split_vma.isra.31       [kernel]
     split_vma                 [kernel]
     mprotect_fixup            [kernel]
     sys_mprotect              [kernel]
     entry_SYSCALL_64_fastpath [kernel]
     mprotect                  ld-2.22.so
     _dl_relocate_object       ld-2.22.so
     memcpy@GLIBC_2.2.5        libc-2.22.so
     _dl_relocate_object       ld-2.22.so
     __gettimeofday            libc-2.22.so
     _dl_vdso_vsym             libc-2.22.so
     _dl_lookup_symbol_x       ld-2.22.so 

This was done on a Broadwell system (ThinkPad t450s).

I now need to continue investigation why this doesn't seem to work from
tracepoints...

- Arnaldo

  reply	other threads:[~2016-04-26  1:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-19  0:07 Missing stack symbols with perf_event's perf report, despite -fno-omit-frame-pointer compilation Mark Davis
2016-04-19  0:18 ` David Ahern
2016-04-25  9:01   ` Milian Wolff
2016-04-26  1:03     ` Arnaldo Carvalho de Melo [this message]
2016-04-26  1:24       ` LBR callchains from tracepoints Arnaldo Carvalho de Melo
2016-04-26 16:38         ` Peter Zijlstra
2016-04-26 17:26           ` Alexei Starovoitov
2016-04-26 18:20             ` Arnaldo Carvalho de Melo
2016-04-26 19:07               ` Peter Zijlstra
2016-04-19  2:26 ` Missing stack symbols with perf_event's perf report, despite -fno-omit-frame-pointer compilation Taeung Song

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=20160426010358.GD16708@kernel.org \
    --to=acme@kernel.org \
    --cc=dsahern@gmail.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=markdavisinboston@gmail.com \
    --cc=milian.wolff@kdab.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.