mirror of
https://github.com/adulau/aha.git
synced 2024-12-30 20:56:23 +00:00
c0a8865e32
Sometimes we get callchain branches that have a rate under the limit given by the user. Say you launched: perf record -f -g -a ./hackbench 10 perf report -g fractal,10.0 And you got: 2.33% hackbench [kernel] [k] _spin_lock_irqsave | |--78.57%-- remove_wait_queue | poll_freewait | do_sys_poll | sys_poll | sysenter_dispatch | 0xf7ffa430 | 0x1ffadea3c | |--7.14%-- __up_read | up_read | do_page_fault | page_fault | 0xf7ffa430 | 0xa0df710000000a ... It is abnormal to get a 7.14% branch whereas we passed a 10% filter. The problem is that we round down the minimum threshold. This happens mostly when we have very low number of events. If the total amount of your branch is 4 and you have a subranch of 3 events, filtering to 90% will be computed like follows: limit = 4 * 0.9; The result is about 3.6, but the cast to integer will round down to 3. It means that our filter is actually of 75% We must then explicitly round up the minimum threshold. Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: acme@redhat.com Cc: peterz@infradead.org Cc: efault@gmx.de LKML-Reference: <20090809024235.GA10146@nowhere> Signed-off-by: Ingo Molnar <mingo@elte.hu> |
||
---|---|---|
.. | ||
include | ||
abspath.c | ||
alias.c | ||
cache.h | ||
callchain.c | ||
callchain.h | ||
color.c | ||
color.h | ||
config.c | ||
ctype.c | ||
environment.c | ||
exec_cmd.c | ||
exec_cmd.h | ||
generate-cmdlist.sh | ||
header.c | ||
header.h | ||
help.c | ||
help.h | ||
levenshtein.c | ||
levenshtein.h | ||
module.c | ||
module.h | ||
pager.c | ||
parse-events.c | ||
parse-events.h | ||
parse-options.c | ||
parse-options.h | ||
path.c | ||
PERF-VERSION-GEN | ||
quote.c | ||
quote.h | ||
run-command.c | ||
run-command.h | ||
sigchain.c | ||
sigchain.h | ||
strbuf.c | ||
strbuf.h | ||
string.c | ||
string.h | ||
strlist.c | ||
strlist.h | ||
symbol.c | ||
symbol.h | ||
types.h | ||
usage.c | ||
util.h | ||
wrapper.c |