Re: perf/branch-history branch build broken with NO_DEMANGLE=1 perf hists browser: Print overhead percent value for first-level callchain

From: Arnaldo Carvalho de Melo
Date: Mon Nov 24 2014 - 20:17:13 EST


Em Mon, Nov 24, 2014 at 11:52:44PM +0100, Andi Kleen escreveu:
> > [root@zoo acme]# perf record -a -g -b sleep 2s
> > [ perf record: Captured and wrote 3.033 MB perf.data (~132504 samples) ]
> > [root@zoo acme]# perf report --stdio --branch-history
> > # To display the perf.data header info, please use --header/--header-only options.
> > BFD: Dwarf Error: Offset (2585882475) greater than or equal to .debug_str size (44321517).
> > BFD: Dwarf Error: Could not find abbrev number 11800.
> > <BIG SNIP>
> > BFD: Dwarf Error: Offset (83496016) greater than or equal to .debug_str size (44321517).
> > BFD: Dwarf Error: Offset (48628447) greater than or equal to .debug_str size (44321517).
> > (END)Segmentation fault (core dumped)
> > [root@zoo acme]#

> > Will investigate this later today/tomorrow, if nobody finds a fix in the meantime.

> I cannot reproduce this.

> For me it looks like you have some binary or debuginfo that your libbfd
> doesn't like. --branch-history resolves all addresses as srcline,
> so it will actually walk all the line numbers.


> Can you please find out which one it is? Probably can be seen
> by just going up a few levels in gdb and dumping the event.

> If you can find the address that explodes you can also try it directly with
> addr2line. If that works it's some problem in the perf implementation.

Right, I'll try and figure this out, since you didn't manage to easily
reproduce this.

> It is likely that it would need to be fixed in libbfd.
>
> To work around it we could turn off force resolving the srcline,
> but that would make the output much less useful too unfortuantely...

I'll try to find out if there is something that can flag a file as
"unsafe" to feed libbfd with, so that we can have a workaround for known
buggy libbfds, if that ends up being really the case.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/