[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170615192053.GA4615@host1.jankratochvil.net>
Date: Thu, 15 Jun 2017 21:20:53 +0200
From: Jan Kratochvil <jan.kratochvil@...hat.com>
To: Jiri Olsa <jolsa@...hat.com>
Cc: Arnaldo Carvalho de Melo <acme@...hat.com>,
Milian Wolff <milian.wolff@...b.com>,
Linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
Namhyung Kim <namhyung@...nel.org>, acme@...nel.org
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
Powered by blists - more mailing lists