perf hists browser: Recalculate browser pointers after resort/decay
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 11 Oct 2011 19:15:39 +0000 (16:15 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 11 Oct 2011 19:16:54 +0000 (16:16 -0300)
commit900e14a8f5a49e987790b93c7906989b22075f1b
tree384fefd278474a1e03ccc68efbf7ea92e393ee6f
parent7588badafcd762034aa962ec86b82cacd4f42f74
perf hists browser: Recalculate browser pointers after resort/decay

In browsers that access dynamic underlying data structures, like in the
hists browser and its hist_entry rb_tree, we need to revalidate any
reference to the underlying data structure, because they can have gone
away, decayed.

This fixes a problem where after a while the top entries get behind the
top of the screen, i.e. the top_idx stays at 0, which means it is at the
first entry in the rb_tree when in fact it wasn't because the
browser->top didn't got revalidated after the timer ran and the
underlying data structure got updated.

Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-mhje66qssdko24q67a2lhlho@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/ui/browser.c
tools/perf/util/ui/browser.h
tools/perf/util/ui/browsers/hists.c