lkml.org 
[lkml]   [2015]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/3] perf top: Fix freeze on --call-graph flat/folded
    On Thu, Nov 26, 2015 at 10:52:56PM +0900, Namhyung Kim wrote:
    > Hi Jiri,
    >
    > On Thu, Nov 26, 2015 at 09:38:53AM +0100, Jiri Olsa wrote:
    > > On Thu, Nov 26, 2015 at 04:08:18PM +0900, Namhyung Kim wrote:
    > > > The callchain rbtree is rebuilt periodically, so it needs to
    > > > reinitialize the root everytime. Otherwise it can be stuck in the
    > > > rbtree insertion with stale pointers.
    > > >
    > > > Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    > > > ---
    > > > tools/perf/util/callchain.c | 1 +
    > > > 1 file changed, 1 insertion(+)
    > > >
    > > > diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
    > > > index fc3b1e0d09ee..564377d2bebf 100644
    > > > --- a/tools/perf/util/callchain.c
    > > > +++ b/tools/perf/util/callchain.c
    > > > @@ -290,6 +290,7 @@ static void
    > > > sort_chain_flat(struct rb_root *rb_root, struct callchain_root *root,
    > > > u64 min_hit, struct callchain_param *param __maybe_unused)
    > > > {
    > > > + *rb_root = RB_ROOT;
    > >
    > > it seems ok, but I did not find how this could be called twice?
    > >
    > > the only sort I can see is done within:
    > > __hists__insert_output_entry
    > >
    > > do we allow resorting of the callchains?
    >
    > No, but I think it's possible though.
    >
    > It's called from perf top's display thread.

    ah right.. top ;-) ok

    isn't there analogical issue with the other sorts?
    graph_abs, graph_rel... I dont see that code doing this

    thanks,
    jirka

    >
    > display_thread()
    > -> while (!done)
    > -> perf_top__print_sym_table()
    > -> hists__output_resort()
    > -> __hists__insert_output_entry()
    >
    > Thanks,
    > Namhyung


    \
     
     \ /
      Last update: 2015-11-26 15:21    [W:5.541 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site