diff options
author | Frederic Weisbecker <[email protected]> | 2010-08-22 04:29:17 +0200 |
---|---|---|
committer | Frederic Weisbecker <[email protected]> | 2010-08-27 01:51:36 +0200 |
commit | 5225c45899e872383ca39f5533d28ec63c54b39e (patch) | |
tree | 29bfc3b18d4f8f39b42e22c8113b6e4c379e0257 | |
parent | 8d330919927ea31fa083b5a80084dc991da813a0 (diff) |
perf: Initialize callchains roots's childen hits
Each histogram entry has a callchain root that stores the
callchain samples. However we forgot to initialize the
tracking of children hits of these roots, which then got
random values on their creation.
The root children hits is multiplied by the minimum percentage
of hits provided by the user, and the result becomes the minimum
hits expected from children branches. If the random value due
to the uninitialization is big enough, then this minimum number
of hits can be huge and eventually filter every children branches.
The end result was invisible callchains. All we need to
fix this is to initialize the children hits of the root.
Reported-by: Christoph Hellwig <[email protected]>
Signed-off-by: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: 2.6.32.x-2.6.35.y <[email protected]>
-rw-r--r-- | tools/perf/util/callchain.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/perf/util/callchain.h b/tools/perf/util/callchain.h index 624a96c636fd..6de4313924fb 100644 --- a/tools/perf/util/callchain.h +++ b/tools/perf/util/callchain.h @@ -50,6 +50,7 @@ static inline void callchain_init(struct callchain_node *node) INIT_LIST_HEAD(&node->children); INIT_LIST_HEAD(&node->val); + node->children_hit = 0; node->parent = NULL; node->hit = 0; } |