mirror of
https://github.com/torvalds/linux.git
synced 2026-07-21 21:19:47 +02:00
Pekka Enberg reported weird percentages in perf report. It
turns out we are overflowing a 32-bit variables in struct
events_stats on 32-bit architectures.
Before:
[acme@ana linux-2.6-tip]$ perf report -i pekka.perf.data 2> /dev/null | head -10
281.96% Xorg b710a561 [.] 0x000000b710a561
140.15% Xorg [kernel] [k] __initramfs_end
51.56% metacity libgobject-2.0.so.0.2000.1 [.] 0x00000000026e46
35.12% evolution libcairo.so.2.10800.6 [.] 0x000000000203bd
33.84% metacity libpthread-2.9.so [.] 0x00000000007a3d
After:
[acme@ana linux-2.6-tip]$ perf report -i pekka.perf.data 2> /dev/null | head -10
30.04% Xorg b710a561 [.] 0x000000b710a561
14.93% Xorg [kernel] [k] __initramfs_end
5.49% metacity libgobject-2.0.so.0.2000.1 [.] 0x00000000026e46
3.74% evolution libcairo.so.2.10800.6 [.] 0x000000000203bd
3.61% metacity libpthread-2.9.so [.] 0x00000000007a3d
Reported-by: Pekka Enberg <penberg@cs.helsinki.fi>
Tested-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1261148583-20395-1-git-send-email-acme@infradead.org>
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 | ||
| data_map.c | ||
| debug.c | ||
| debug.h | ||
| debugfs.c | ||
| debugfs.h | ||
| environment.c | ||
| event.c | ||
| event.h | ||
| exec_cmd.c | ||
| exec_cmd.h | ||
| generate-cmdlist.sh | ||
| header.c | ||
| header.h | ||
| help.c | ||
| help.h | ||
| hist.c | ||
| hist.h | ||
| levenshtein.c | ||
| levenshtein.h | ||
| map.c | ||
| pager.c | ||
| parse-events.c | ||
| parse-events.h | ||
| parse-options.c | ||
| parse-options.h | ||
| path.c | ||
| PERF-VERSION-GEN | ||
| probe-event.c | ||
| probe-event.h | ||
| probe-finder.c | ||
| probe-finder.h | ||
| quote.c | ||
| quote.h | ||
| run-command.c | ||
| run-command.h | ||
| session.c | ||
| session.h | ||
| sigchain.c | ||
| sigchain.h | ||
| sort.c | ||
| sort.h | ||
| strbuf.c | ||
| strbuf.h | ||
| string.c | ||
| string.h | ||
| strlist.c | ||
| strlist.h | ||
| svghelper.c | ||
| svghelper.h | ||
| symbol.c | ||
| symbol.h | ||
| thread.c | ||
| thread.h | ||
| trace-event-info.c | ||
| trace-event-parse.c | ||
| trace-event-perl.c | ||
| trace-event-perl.h | ||
| trace-event-read.c | ||
| trace-event.h | ||
| types.h | ||
| usage.c | ||
| util.h | ||
| values.c | ||
| values.h | ||
| wrapper.c | ||