Hello,
Indeed there is a problem in the ARM code for tracepoints. After a good discussion with the perf maintainers a solution has be found, cf. http://www.spinics.net/lists/arm-kernel/msg332293.html.
Can you check if this fixes the problem? It does on my side on 3.15-rc4.
The patch is under review by the ARM experts and hopefully should be merged soon.
Regards, Jean
On 16 May 2014 09:34, Jean Pihet jean.pihet@linaro.org wrote:
Hello,
On 15 May 2014 07:36, sneha priya sneha.cse@hotmail.com wrote:
Hello,
There is an issue related to perf which I am facing since 15 days. Hoping that the great minds here will help me to solve this.
I have a requirement to make perf tool work on a device having ARM architecture. But, on recording the tracepoint events and then running ./perf report, it shows the shared objects name as [unknown] and Symbols as 00000, whereas for software and hardware events I do not experience this issue. I have cross compiled the perf tool available on mailine and ported it on a device having ARM architecture.
Output on ARM based device with kernel 3.4.
./perf record -e kmem:kmalloc cal
[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.007 MB perf.data (~321 samples) ]
./perf report
Overhead Command Shared Object Symbol ........................... ................................ ........................................... 40.78% cal [unknown] [.]00000000 31.6% cal [unknown] [.]00000000
[...]
On ubuntu 12.04, system (kernel 3.10) it works perfectly fine.
Output on x86 architecture
./perf record -e kmem:kmalloc gcalctool
[ perf record: Woken up 3 times to write data ] [ perf record: Captured and wrote 0.27 MB perf.data (~845 samples) ]
./perf report --stdio
Overhead Command Shared Object Symbol ........................... ................................ ........................................... 96.55% cal [kernel.kallsyms] [k] kmem_cache_alloc_trace 3.45% cal [kernel.kallsyms] [.]__kmalloc
[...]
Keenly, awaiting for you help.
There are a few things to check. Note that the 3.4 kernel is OK wrt perf and tracepoints but is quite old, the recent development now happens on 3.15.
- Do you have kallsyms enabled in your kernel (CONFIG_KALLSYMS=y)?
- Are there warnings issued by perf record, e.g. access to kernel symbols etc?
- perf report needs to know about your vmlinux image (the one that
contains the debug symbols etc in the root directory of the kernel build). You can use '-k <file>' or '--vmlinux=<file>', cf. perf report --help.
- You can dump the samples from perf.data using perf report -D. The
entries with 'PERF_RECORD_SAMPLE(IP, 2)' are for the user space apps.
- The '-v' option gives more info. This can be used multiple times ('-vv').
Thanks.
Sneha.
Regards, Jean
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev