linux/tools/perf/util
Frederic Weisbecker 108553e1f3 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>
2010-07-08 06:26:56 +02:00
..
include perf options: Check v type in OPT_U?INTEGER 2010-05-17 15:43:38 -03:00
scripting-engines perf scripts python: Give field dict to unhandled callback 2010-06-01 06:12:35 -03:00
PERF-VERSION-GEN perf: Version String fix, for fallback if not from git 2010-07-05 10:42:58 +02:00
abspath.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
alias.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
bitmap.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
build-id.c perf annotate: Use build-ids to find the right DSO 2010-05-20 12:15:33 -03:00
build-id.h perf annotate: Use build-ids to find the right DSO 2010-05-20 12:15:33 -03:00
cache.h perf tui: Allow disabling the TUI on a per command basis in ~/.perfconfig 2010-05-20 22:01:10 -03:00
callchain.c perf: Sync callchains with period based hits 2010-07-08 06:26:56 +02:00
callchain.h perf: Sync callchains with period based hits 2010-07-08 06:26:56 +02:00
color.c perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
color.h perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
config.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
cpumap.c perf tools: Fix sparse CPU numbering related bugs 2010-03-11 13:36:53 +01:00
cpumap.h perf tools: Fix sparse CPU numbering related bugs 2010-03-11 13:36:53 +01:00
ctype.c perf tools: Move graph_line and graph_dotted_line from top 2009-11-23 21:55:20 +01:00
debug.c perf tui: Fix last use_browser problem related to .perfconfig 2010-05-27 09:53:40 -03:00
debug.h perf: Fix endianness argument compatibility with OPT_BOOLEAN() and introduce OPT_INCR() 2010-04-14 11:26:44 +02:00
debugfs.c perf trace: Clean up find_debugfs() 2009-12-28 10:36:36 +01:00
debugfs.h perf tools: Mount debugfs automatically 2009-12-28 10:36:36 +01:00
environment.c
event.c perf session: Remove threads from tree on PERF_RECORD_EXIT 2010-06-17 08:37:44 -03:00
event.h perf hist: Make event__totals per hists 2010-05-14 10:36:42 -03:00
exec_cmd.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
exec_cmd.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
generate-cmdlist.sh
header.c perf session: Make read_build_id routines look at the host_machine too 2010-05-19 13:45:08 -03:00
header.h perf/live: don't synthesize build ids at the end of a live mode trace 2010-05-02 12:04:05 -03:00
help.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
help.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
hist.c perf hist: fix objdump output parsing 2010-06-01 05:44:36 -03:00
hist.h perf report: Support multiple events on the TUI 2010-05-23 22:36:51 -03:00
hweight.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
levenshtein.c
levenshtein.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
map.c perf session: Embed the host machine data on perf_session 2010-05-09 21:14:52 -03:00
map.h perf symbols: Add machine helper routines 2010-04-29 15:25:23 -03:00
newt.c perf record: Don't call newt functions when not initialized 2010-06-10 08:29:19 -03:00
pager.c perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
parse-events.c Merge branch 'perf' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 into perf/core 2010-05-08 10:02:57 +02:00
parse-events.h perf: record TRACE_INFO only if using tracepoints and SAMPLE_RAW 2010-05-03 10:31:48 -03:00
parse-options.c perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
parse-options.h perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
path.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
probe-event.c perf machine: Adopt some map_groups functions 2010-04-27 21:21:18 -03:00
probe-event.h perf probe: Add --max-probes option 2010-04-26 15:35:20 -03:00
probe-finder.c perf probe: Fix some error exit paths 2010-05-18 23:04:28 -03:00
probe-finder.h perf probe: Don't compile CFI related code if elfutils is old 2010-05-17 22:13:51 -03:00
pstack.c perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
pstack.h perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
quote.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
quote.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
session.c perf session: Remove threads from tree on PERF_RECORD_EXIT 2010-06-17 08:37:44 -03:00
session.h perf session: Remove threads from tree on PERF_RECORD_EXIT 2010-06-17 08:37:44 -03:00
sigchain.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sigchain.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sort.c perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
sort.h perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
strbuf.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
string.c perf: Swap inclusion order of util.h and string.h in util/string.c 2010-04-04 16:40:42 +02:00
strlist.c perf probe: Fix --del to update current event list 2009-12-15 20:22:01 +01:00
strlist.h perf tools: Add for_each macros for strlist 2009-12-15 20:22:02 +01:00
svghelper.c perf timechart: Improve the visual appearance of scheduler delays 2009-10-20 03:39:21 +02:00
svghelper.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
symbol.c perf symbols: Set the DSO long name when using symbol_conf.vmlinux_name 2010-06-04 07:07:52 -03:00
symbol.h perf symbols: Add the build id cache to the vmlinux path 2010-05-26 13:26:02 -03:00
thread.c perf tools: Fix find tids routine by excluding "." and ".." 2010-07-01 14:02:38 -03:00
thread.h perf session: Remove threads from tree on PERF_RECORD_EXIT 2010-06-17 08:37:44 -03:00
trace-event-info.c perf/record: simplify TRACE_INFO tracepoint check 2010-05-05 11:12:53 -03:00
trace-event-parse.c Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-05-18 08:19:03 -07:00
trace-event-read.c perf: Use read() instead of lseek() in trace_event_read.c:skip() 2010-05-20 08:37:17 +02:00
trace-event-scripting.c perf/scripts: Add Python scripting engine 2010-02-25 04:07:29 +01:00
trace-event.h perf: Fix unaligned accesses while fetching trace values 2010-05-20 11:21:57 +02:00
types.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
usage.c perf top: Fall back to cpu-clock-tick hrtimer sampling if no cycle counter available 2009-06-07 17:31:52 +02:00
util.c perf report: Report number of events, not samples 2010-05-14 14:19:35 -03:00
util.h perf annotate: Add TUI interface 2010-05-22 11:25:40 -03:00
values.c perf: Fix memory leak: counterwidth 2010-01-13 10:09:15 +01:00
values.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
wrapper.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00