Messages in this thread | | | Date | Thu, 15 Jun 2017 21:20:53 +0200 | From | Jan Kratochvil <> | Subject | Re: [PATCH 2/2] perf report: report module before querying isactivation in dwfl unwind |
| |
On Mon, 05 Jun 2017 12:47:20 +0200, Jiri Olsa wrote: > On Fri, Jun 02, 2017 at 12:25:08PM -0300, Arnaldo Carvalho de Melo wrote: > > Em Fri, Jun 02, 2017 at 04:37:53PM +0200, Milian Wolff escreveu: > > > The PC returned by dwfl_frame_pc may map into a not-yet-reported > > > module. We have to report it before we continue unwinding. But when > > > we query for the isactivation flag in dwfl_frame_pc, libdw will > > > actually do one more unwinding step internally which can then break > > > and lead to missed frames or broken stacks. > > > > > > With libunwind we get e.g.: > > sounds like a libdw design issue.. Jan is there a specific way > to handle the case that Milian described?
I agree with the patch.
Just be aware for performance then the __report_module() call in entry() is no longer useful as the '--pc' adjustment should never cross a module boundary.
Although for perf unwinding performance there is still a wide gap there (such as caching the loaded modules for multiple backtraces.)
Thanks, Jan
| |