自15天以来我遇到的问题与perf
有关。希望这里的伟大思想能帮助我解决这个问题。
我要求在具有ARM体系结构的设备上使用perf
工具。但是,在记录跟踪点事件然后运行./perf
报告时,它会将共享对象名称显示为[unknown]
,将符号显示为00000
,而对于软件和硬件事件,我不会遇到此问题。
我已经交叉编译了mailine上可用的perf
工具,并将其移植到具有ARM体系结构的设备上。
在内核基于ARM的设备上输出。
./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
[...]
在ubuntu 12.04上,系统(内核3.10)完全正常。
x86架构上的输出
./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
[...]
敏锐地等待着你的帮助。
感谢。