Re: [PATCH 1/4] perf, tools: Add support for prepending LBRs to the callstack

Andi Kleen
2014-01-11T17:58:21Z

On Sat, Jan 11, 2014 at 04:36:14PM +0100, Jiri Olsa wrote:
> On Fri, Jan 10, 2014 at 04:32:03AM -0800, Andi Kleen wrote:
> > From: Andi Kleen <ak@linux.intel.com>
> >
> > I never found the default LBR display mode which generates histograms
> > of individual branches particularly useful.
> >
> > This implements an alternative mode that creates histograms over complete
> > branch traces, instead of individual branches, similar to how normal
> > callgraphs are handled. This is done by putting it in
> > front of the normal callgraph and then using the normal callgraph
> > histogram infrastructure to unify them.
> >
> > This way in complex functions we can understand the control flow
> > that lead to a particular sample.
> >
> > The default output is unchanged.
> >
> > This is only implemented in perf report, no change to record
> > or anywhere else.
> >
> > This adds the basic code to report:
> > - add a new "branch" option to the -g option parser to enable this mode
> > - when the flag is set include the LBR into the callstack in machine.c.
> > The rest of the history code is unchanged and doesn't know the difference
> > between LBR entry and normal call entry.
>
> sounds like nice idea, but I could not get the patchset applied
> on acme's perf/core

It was on Linus master.

I tried to rebase on perf/core, but it seems to be totally broken by
itself. All the config tests fail on my opensuse system.

Arnaldo?

Auto-detecting system features:
... backtrace: [ OFF ]
... dwarf: [ OFF ]
... fortify-source: [ OFF ]
... glibc: [ OFF ]
... gtk2: [ OFF ]
... gtk2-infobar: [ OFF ]
... libaudit: [ OFF ]
... libbfd: [ OFF ]
... libelf: [ OFF ]
... libelf-getphdrnum: [ OFF ]
... libelf-mmap: [ OFF ]
... libnuma: [ OFF ]
... libperl: [ OFF ]
... libpython: [ OFF ]
... libpython-version: [ OFF ]
... libslang: [ OFF ]
... libunwind: [ OFF ]
... on-exit: [ OFF ]
... stackprotector-all: [ OFF ]
... timerfd: [ OFF ]

config/Makefile:282: *** No gnu/libc-version.h found, please install
glibc-dev[el]/glibc-static. Stop.
make: *** [all] Error 2

-Andi