perf_counter tools: Various fixes for callchains
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 1 Jul 2009 03:35:15 +0000 (05:35 +0200)
committerIngo Molnar <mingo@elte.hu>
Wed, 1 Jul 2009 07:58:52 +0000 (09:58 +0200)
commitdeac911cbdcb124fa0cee47c588e0cb0400b23b7
treec76ae281553a57ec002945d48b9d474858836d0f
parent4424961ad6621a02c6b4c9093e801002c1bb9f65
perf_counter tools: Various fixes for callchains

The symbol resolving has of course revealed some bugs in the
callchain tree handling. This patch fixes some of them,
including:

- inherit the children from the parents while splitting a node
- fix list range moving
- fix indexes setting in callchains
- create a child on the current node if the path doesn't match in
  the existent children (was only done on the root)
- compare using symbols when possible so that we can match a function
  using any ip inside by referring to its start address.

The practical effects are:

- remove double callchains
- fix upside down or any random order of callchains
- fix wrong paths
- fix bad hits and percentage accounts

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Anton Blanchard <anton@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <1246419315-9968-4-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
tools/perf/util/callchain.c