perf not capturing stack traces
From: acme@kernel.org (Arnaldo Carvalho de Melo)
Date: 2015-01-26 14:33:32
Also in:
linux-omap, lkml
From: acme@kernel.org (Arnaldo Carvalho de Melo)
Date: 2015-01-26 14:33:32
Also in:
linux-omap, lkml
Em Mon, Jan 26, 2015 at 01:54:06PM +0000, Russell King - ARM Linux escreveu:
On Mon, Jan 26, 2015 at 09:12:43AM -0300, Arnaldo Carvalho de Melo wrote:quoted
Em Mon, Jan 26, 2015 at 10:27:11AM +0000, Will Deacon escreveu:quoted
FWIW, perf can now use libunwind for unwinding the userspace side of things, so it's not quite as bad as it used to be. For the kernel side, if the unwinder isn't working properly it would be nice to know *why*, but I agree that it tends to be far flakier than the frame-pointer method.
quoted
Any idea why, with userspace using frame pointers, perf doesn't go all the way from kernel to userspace main() (or whatever is the endpoint), as Russel stated?^ *growl*
I misunderstood, as corrected on another message, sorry.
I've rebuilt userspace code which I've been working on in with a bunch of flags which makes it use frame pointers in ARM mode, and perf does seem to be capable of that; in that case, perf_callchain_user() can walk the linked set of frames. However, if glibc is built for thumb2 or doesn't contain frame pointers, userspace tracing pretty much stops after you hit the first function in userspace.
Right. - Arnaldo