linux-IllusionX/tools/perf/util
Arnaldo Carvalho de Melo 3b01a413c1 perf symbols: Improve kallsyms symbol end addr calculation
For kallsyms we don't have the symbol address end, so we do an extra pass and
set the symbol end addr as being the start of the next minus one.

But this was being done just after we filtered the symbols of a
particular type (functions, variables), so the symbol end was sometimes
after what it really is.

Fixing up symbol end also was falling apart when we have symbol aliases,
then the end address of all but the last alias was being set to be
before its start.

Fix it up by checking for symbol aliases and making the kallsyms__parse
routine use the next symbol, whatever its type, as the limit for the
previous symbol, passing that end address to the callback.

This was detected by the 'perf test' synthetic paranoid regression
tests, fix it up so that even that case doesn't mislead us.

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>
Cc: Stephane Eranian <eranian@google.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2010-12-22 20:31:45 -02:00
..
include perf record: Add option to disable collecting build-ids 2010-11-26 19:39:15 -02:00
scripting-engines perf: Rename 'perf trace' to 'perf script' 2010-11-16 19:37:44 +01:00
ui perf tools: Fix lost and unknown events handling 2010-11-27 02:41:01 -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 session: Parse sample earlier 2010-12-04 23:05:19 -02: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 tools: add test for strlcpy() 2010-08-21 11:22:47 -03:00
callchain.c perf: Support for callchains merge 2010-08-22 21:10:35 +02:00
callchain.h Merge branch 'perf/urgent' into perf/core 2010-08-27 02:30:07 +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 buildid: add perfconfig option to specify buildid cache dir 2010-06-05 09:34:04 -03:00
cpumap.c perf tools: Add the ability to specify list of cpus to monitor 2010-06-05 09:33:01 -03:00
cpumap.h perf tools: Add the ability to specify list of cpus to monitor 2010-06-05 09:33:01 -03: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 debug: Simplify trace_event 2010-11-30 20:58:42 -02:00
debug.h perf tools: Fix lost and unknown events handling 2010-11-27 02:41:01 -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 perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
event.c perf symbols: Improve kallsyms symbol end addr calculation 2010-12-22 20:31:45 -02:00
event.h perf session: Consolidate the dump code 2010-12-09 11:18:06 -02: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 perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
header.c Merge branch 'perf/urgent' into perf/core 2010-12-16 11:22:27 +01:00
header.h perf tools: Ask for ID PERF_SAMPLE_ info on all PERF_RECORD_ events 2010-12-04 23:08:40 -02: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 symbols: Add symfs option for off-box analysis using specified tree 2010-12-21 20:17:51 -02:00
hist.h perf session: Parse sample earlier 2010-12-04 23:05:19 -02:00
hweight.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
levenshtein.c perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ 2009-06-06 20:33:43 +02:00
levenshtein.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
map.c perf tools: Don't keep unreferenced maps when unmaps are detected 2010-08-02 19:45:23 -03:00
map.h perf probe: Add basic module support 2010-10-21 16:11:44 -02:00
pager.c perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
parse-events.c perf tools: fix event parsing of comma-separated tracepoint events 2010-11-30 23:04:39 -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: add OPT_CALLBACK_DEFAULT_NOOPT 2010-12-06 15:33:29 -02:00
path.c perf tools: add test for strlcpy() 2010-08-21 11:22:47 -03:00
PERF-VERSION-GEN perf: Version String fix, for fallback if not from git 2010-07-05 10:42:58 +02:00
probe-event.c perf probe: Handle gracefully some stupid and buggy line syntaxes 2010-12-21 17:20:13 -02:00
probe-event.h perf probe: Add basic module support 2010-10-21 16:11:44 -02:00
probe-finder.c perf probe: Cleanup messages 2010-12-21 20:20:58 -02:00
probe-finder.h perf tools: Remove hardcoded include paths for elfutils 2010-11-19 16:38:04 -02:00
pstack.c perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
pstack.h perf ui: Move hists browser to util/ui/browsers/ 2010-08-10 16:11:08 -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: Fallback to unordered processing if no sample_id_all 2010-12-21 20:17:51 -02:00
session.h perf session: Fallback to unordered processing if no sample_id_all 2010-12-21 20:17:51 -02: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 hist: Better displaying of unresolved DSOs and symbols 2010-12-06 15:12:34 -02:00
sort.h perf: Keep track of the max depth of a callchain 2010-08-22 20:43:17 +02: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: Improve kallsyms symbol end addr calculation 2010-12-22 20:31:45 -02:00
symbol.h perf symbols: Improve kallsyms symbol end addr calculation 2010-12-22 20:31:45 -02:00
thread.c perf tools: Release thread resources on PERF_RECORD_EXIT 2010-07-30 18:28:42 -03:00
thread.h perf tools: Release thread resources on PERF_RECORD_EXIT 2010-07-30 18:28:42 -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 trace scripting: Fix extern struct definitions 2010-10-04 12:24:51 -03: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 ui browser: Return the exit key in all browsers 2010-08-19 19:39:52 -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