perf not capturing stack traces
From: acme@kernel.org (Arnaldo Carvalho de Melo)
Date: 2015-01-26 12:29:33
Also in:
linux-omap, lkml
Em Mon, Jan 26, 2015 at 12:16:21PM +0000, Will Deacon escreveu:
On Mon, Jan 26, 2015 at 12:12:43PM +0000, Arnaldo Carvalho de Melo wrote:quoted
Em Mon, Jan 26, 2015 at 10:27:11AM +0000, Will Deacon escreveu:quoted
On Sun, Jan 25, 2015 at 03:56:52PM +0000, Russell King - ARM Linux wrote:quoted
On Sat, Jan 24, 2015 at 04:23:42PM -0600, Felipe Balbi wrote:quoted
yeah, I'll try a few older kernels, also see if I can reproduce on other boards.Perf works for me with CONFIG_FRAME_POINTER=y, but that's only for kernel space, and for userspace where the programs have been built for ARM mode with frame pointers. The kernel may work without CONFIG_FRAME_POINTER set, but I've never tested that, and I'd suggest that (given my experience looking at oops dumps) it's not all that reliable. Lastly, userspace without frame pointers is pretty much hopeless.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.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?Did he state that? I thought he was just saying that he couldn't unwind userspace when *not* using frame pointers, which requires you to link
sorry, yeah I misunderstood, so all is good for kernel + userspace when both are built with frame pointers :-) "The only for kernel space" caught my attention, I thought that he said that it works only for the kernel with frame pointers, even with a userspace built with fp. - Arnaldo
a recent perf with a bleeding-edge libunwind. Will