linux/tools/perf
Chanho Park e3b6193378 perf archive: Correct cutting of symbolic link
If a '$PERF_BUILDID_DIR'(typically $HOME/.debug) is a symbolic link
directory, cutting of the path will fail.

Here is an example where a buildid directory is a symbolic link.

/ # ls -al /root
lrwxrwxrwx    1 root     root            13 Mar 26  2012 /root -> opt/home/root
/ # cd ~
/opt/home/root # perf record -a -g sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.322 MB perf.data (~14057 samples) ]
/opt/home/root # perf archive
tar: Removing leading `/' from member names
Now please run:

$ tar xvf perf.data.tar.bz2 -C ~/.debug

wherever you need to run 'perf report' on.
/opt/home/root # mkdir temp
/opt/home/root # tar xf perf.data.tar.bz2 -C ./temp
/opt/home/root # find ./temp -name "*kernel*"
./temp/opt/home/root/.debug/[kernel.kallsyms]

-> If successfully cut off the path, [kernel.kallsyms] is located
in top of the archived file.

This patch enables to cut correctly even if the buildid directory
is a symbolic link.

Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1333348109-12598-1-git-send-email-chanho61.park@samsung.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-04-14 13:52:15 -03:00
..
Documentation perf report: Add a simple GTK2-based 'perf report' browser 2012-03-19 15:13:29 -03:00
arch perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
bench perf tool: Fix perf stack to non executable on x86_64 2012-02-06 19:14:17 -02:00
config perf report: Add a simple GTK2-based 'perf report' browser 2012-03-19 15:13:29 -03:00
python perf python: Use attr.watermark in twatch.py 2012-01-30 18:38:23 -02:00
scripts perf script: Add drop monitor script 2011-09-29 16:41:37 -03:00
util perf session: Skip event correctly for unknown id/machine 2012-04-12 12:14:50 -03:00
.gitignore perf tools: Ignore auto-generated bison/flex files 2012-04-14 13:50:39 -03:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
MANIFEST perf tools: Fix out of tree compiles 2012-02-13 22:46:41 -02:00
Makefile perf tools: Fix parsers' rules to dependencies 2012-04-14 13:49:43 -03:00
builtin-annotate.c perf annotate: Get rid of field_sep check 2012-01-08 13:29:34 -02:00
builtin-bench.c perf bench: Also allow measuring memset() 2012-01-24 20:25:32 -02:00
builtin-buildid-cache.c perf buildid: add perfconfig option to specify buildid cache dir 2010-06-05 09:34:04 -03:00
builtin-buildid-list.c perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
builtin-diff.c perf diff: Fix to work with new hists design 2012-03-22 15:12:09 -03:00
builtin-evlist.c perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
builtin-help.c perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
builtin-inject.c perf tools: Rename perf_event_ops to perf_tool 2011-11-28 10:39:28 -02:00
builtin-kmem.c perf kmem: Fix a memory leak 2012-01-08 13:27:54 -02:00
builtin-kvm.c perf kvm: Do guest-only counting by default 2012-01-06 15:47:37 -02:00
builtin-list.c perf list: Allow filtering list of events 2011-02-17 15:38:58 -02:00
builtin-lock.c perf lock: Document lock info subcommand 2012-01-30 18:30:48 -02:00
builtin-probe.c perf probe: Rename target_module to target 2012-02-02 17:39:15 -02:00
builtin-record.c perf record: Add HEADER_BRANCH_STACK tag 2012-03-09 08:26:08 +01:00
builtin-report.c perf report: Add a simple GTK2-based 'perf report' browser 2012-03-19 15:13:29 -03:00
builtin-sched.c perf tools: Fix getrusage() related build failure on glibc trunk 2012-04-04 11:59:00 +02:00
builtin-script.c perf script: Add option resolving vmlinux path 2012-01-30 18:13:07 -02:00
builtin-stat.c perf stat: Fix event grouping on forked task 2012-03-16 16:13:45 -03:00
builtin-test.c perf tools: Fix modifier to be applied on correct events 2012-03-22 15:11:38 -03:00
builtin-timechart.c perf report: Accept fifos as input file 2011-12-23 17:01:03 -02:00
builtin-top.c perf annotate: Validate addr in symbol__inc_addr_samples 2012-04-05 19:51:14 -03:00
builtin.h perf tools: Make perf.data more self-descriptive (v8) 2011-10-07 17:01:24 -03:00
command-list.txt perf evlist: New command to list the names of events present in a perf.data file 2011-03-15 11:10:48 -03:00
design.txt perf: Fix few typos + cosmetics 2010-01-13 17:39:44 +01:00
perf-archive.sh perf archive: Correct cutting of symbolic link 2012-04-14 13:52:15 -03:00
perf.c perf tools: Simplify debugfs mountpoint handling code 2011-11-28 10:11:28 -02:00
perf.h Merge branch 'perf/urgent' into perf/core 2012-03-22 15:09:08 -03:00