Commit 97aa1052 authored by Frederic Weisbecker's avatar Frederic Weisbecker

perf: Resurrect flat callchains

Initialize the callchain radix tree root correctly.

When we walk through the parents, we must stop after the root, but
since it wasn't well initialized, its parent pointer was random.

Also the number of hits was random because uninitialized, hence it
was part of the callchain while the root doesn't contain anything.

This fixes segfaults and percentages followed by empty callchains
while running:

	perf report -g flat
Reported-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: 2.6.31.x-2.6.34.x <stable@kernel.org>
parent 869599ce
...@@ -49,6 +49,9 @@ static inline void callchain_init(struct callchain_node *node) ...@@ -49,6 +49,9 @@ static inline void callchain_init(struct callchain_node *node)
INIT_LIST_HEAD(&node->brothers); INIT_LIST_HEAD(&node->brothers);
INIT_LIST_HEAD(&node->children); INIT_LIST_HEAD(&node->children);
INIT_LIST_HEAD(&node->val); INIT_LIST_HEAD(&node->val);
node->parent = NULL;
node->hit = 0;
} }
static inline u64 cumul_hits(struct callchain_node *node) static inline u64 cumul_hits(struct callchain_node *node)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment