perf: Sync callchains with period based hits
authorFrederic Weisbecker <fweisbec@gmail.com>
Thu, 8 Jul 2010 01:41:46 +0000 (03:41 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Thu, 8 Jul 2010 04:26:56 +0000 (06:26 +0200)
commit108553e1f3c45a92d23681a378ad9e4c3230eebc
tree27cde88dbb3ec8438d100032135e845bd43ad92d
parent97aa1052739c6a06cb6b0467dbf410613d20bc97
perf: Sync callchains with period based hits

Hists have their hits increased by the event period. And this
period based counting is the foundation of all the stats in
perf report.

But callchains still use the raw number of hits, without taking
the period into account. So when we compute the percentage,
absolute based percentages are totally broken, and relative ones
too in the first parent level. Because we pass the number of events
muliplied by their period as the total number of hits to the
callchain filtering, while callchains expect this number to be
the number of raw hits.

perf report -g graph was simply not working, showing no graph unless
the min percent was zero. And even there the percentage of the
branches was always 0. And may be fractal filtering was broken on
the first branch level too.

flat also was broken, but it was hidden because of other breakages.

Anyway fix this by counting using periods on callchains.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
tools/perf/builtin-report.c
tools/perf/util/callchain.c
tools/perf/util/callchain.h