[meta-freescale] Using perf on a Wanboard Solo with linux-imx-3.10.9

Jacob Kroon jacob.kroon at gmail.com
Sat Dec 7 12:49:19 PST 2013


Hi,

I want to use "perf" for performance monitoring on my Wandboard. I'm using
openembedded-core and meta-fsl-arm/meta-fsl-arm-extra from git as of today,
running linux-imx-3.10.9 kernel with a custom dts for the wandboard solo.
I'm using the defconfig from meta-fsl-arm, so I do have

CONFIG_HAVE_PERF_EVENTS=y

This is what I get when running "perf test":

root at wandboard-solo:/boot# perf test
 1: vmlinux symtab matches kallsyms                        : FAILED!
 2: detect open syscall event                              : FAILED!
 3: detect open syscall event on all cpus                  : FAILED!
 4: read samples using the mmap interface                  : FAILED!
 5: parse events tests                                     : FAILED!
 6: Validate PERF_RECORD_* events & perf_sample fields     : FAILED!
 7: Test perf pmu format parsing                           : Ok
 8: Test dso data interface                                : Ok
 9: roundtrip evsel->name check                            : Ok
10: Check parsing of sched tracepoints fields              : FAILED!
11: Generate and check syscalls:sys_enter_open event fields: FAILED!
12: struct perf_event_attr setup                           :sh:
/home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/python-native/python:
No such file or directory
 FAILED!
13: Test matching and linking mutliple hists               : Ok
14: Try 'use perf' in python, checking link problems       : FAILED!
15: Test breakpoint overflow signal handler                : FAILED!
16: Test breakpoint overflow sampling                      : FAILED!
17: Test number of exit event of a simple workload         : FAILED!
18: Test software clock events have valid period values    : Ok
root at wandboard-solo:/boot#

Most of the tests fail, and there also seems to be a problem with a python
reference from the host spilling over into the target perf binary.

If I do run "perf record" and "perf report", I get 0.00% overhead for all
the functions that are listed...

Has anyone been successful with running "perf" on an i.MX6 board ?
I've attached the detailed output of "perf test -v" in the mail.

  -- Jacob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20131207/26f71b5b/attachment.html>
-------------- next part --------------
root at wandboard-solo:/boot# perf test -v
 1: vmlinux symtab matches kallsyms                        :
--- start ---
dso__find_symbol_by_name ---- end ----
vmlinux symtab matches kallsyms: FAILED!
 2: detect open syscall event                              :
--- start ---
is debugfs mounted on /sys/kernel/debug?
---- end ----
detect open syscall event: FAILED!
 3: detect open syscall event on all cpus                  :
--- start ---
is debugfs mounted on /sys/kernel/debug?
---- end ----
detect open syscall event on all cpus: FAILED!
 4: read samples using the mmap interface                  :
--- start ---
perf_evsel__new
---- end ----
read samples using the mmap interface: FAILED!
 5: parse events tests                                     :
--- start ---
running test 0 'syscalls:sys_enter_open'
failed to parse event 'syscalls:sys_enter_open', err 1
running test 1 'syscalls:*'
failed to parse event 'syscalls:*', err 1
running test 2 'r1a'
running test 3 '1:1'
running test 4 'instructions'
running test 5 'cycles/period=100000,config2/'
running test 6 'faults'
running test 7 'L1-dcache-load-miss'
running test 8 'mem:0'
running test 9 'mem:0:x'
running test 10 'mem:0:r'
running test 11 'mem:0:w'
running test 12 'syscalls:sys_enter_open:k'
failed to parse event 'syscalls:sys_enter_open:k', err 1
running test 13 'syscalls:*:u'
failed to parse event 'syscalls:*:u', err 1
running test 14 'r1a:kp'
running test 15 '1:1:hp'
running test 16 'instructions:h'
running test 17 'faults:u'
running test 18 'L1-dcache-load-miss:kp'
running test 19 'mem:0:u'
running test 20 'mem:0:x:k'
running test 21 'mem:0:r:hp'
running test 22 'mem:0:w:up'
running test 23 'r1,syscalls:sys_enter_open:k,1:1:hp'
failed to parse event 'r1,syscalls:sys_enter_open:k,1:1:hp', err 1
running test 24 'instructions:G'
running test 25 'instructions:H'
running test 26 'mem:0:rw'
running test 27 'mem:0:rw:kp'
running test 28 '{instructions:k,cycles:upp}'
running test 29 '{faults:k,cache-references}:u,cycles:k'
running test 30 'group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u'
failed to parse event 'group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u', err 1
running test 31 '{cycles:u,instructions:kp}:p'
running test 32 '{cycles,instructions}:G,{cycles:G,instructions:G},cycles'
running test 33 '*:*'
failed to parse event '*:*', err 1
running test 34 '{cycles,cache-misses:G}:H'
running test 35 '{cycles,cache-misses:H}:G'
running test 36 '{cycles:G,cache-misses:H}:u'
running test 37 '{cycles:G,cache-misses:H}:uG'
omitting PMU cpu tests
omitting PMU cpu tests
running test 0 'config=10,config1,config2=3,umask=1'
---- end ----
parse events tests: FAILED!
 6: Validate PERF_RECORD_* events & perf_sample fields     :
--- start ---
4543228339206 0 PERF_RECORD_SAMPLE
4543228368206 0 PERF_RECORD_SAMPLE
4543228373872 0 PERF_RECORD_SAMPLE
4543229081872 0 PERF_RECORD_SAMPLE
4543229474539 0 PERF_RECORD_COMM: sleep:1250
4543229547872 0 PERF_RECORD_MMAP 1250/1250: [0x8000(0x83000) @ 0]: /bin/busybox.nosuid
4543229615872 0 PERF_RECORD_MMAP 1250/1250: [0x76f48000(0x28000) @ 0]: /lib/ld-2.18.so
4543229689206 0 PERF_RECORD_MMAP 1250/1250: [0x76f6d000(0x1000) @ 0x76f6d000]: [vectors]
4543230222872 0 PERF_RECORD_MMAP 1250/1250: [0x76e10000(0x138000) @ 0]: /lib/libc-2.18.so
4544231595539 0 PERF_RECORD_EXIT(1250:1250):(1250:1250)
PERF_RECORD_MMAP for sleep missing!
PERF_RECORD_MMAP for [vdso] missing!
---- end ----
Validate PERF_RECORD_* events & perf_sample fields: FAILED!
 7: Test perf pmu format parsing                           :
--- start ---
---- end ----
Test perf pmu format parsing: Ok
 8: Test dso data interface                                :
--- start ---
---- end ----
Test dso data interface: Ok
 9: roundtrip evsel->name check                            :
--- start ---
---- end ----
roundtrip evsel->name check: Ok
10: Check parsing of sched tracepoints fields              :
--- start ---
perf_evsel__new
---- end ----
Check parsing of sched tracepoints fields: FAILED!
11: Generate and check syscalls:sys_enter_open event fields:
--- start ---
test__syscall_open_tp_fields: perf_evsel__newtp
---- end ----
Generate and check syscalls:sys_enter_open event fields: FAILED!
12: struct perf_event_attr setup                           :
--- start ---
sh: /home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/python-native/python: No such file or directory
---- end ----
struct perf_event_attr setup: FAILED!
13: Test matching and linking mutliple hists               :
--- start ---
---- end ----
Test matching and linking mutliple hists: Ok
14: Try 'use perf' in python, checking link problems       :
--- start ---
sh: /home/jkroon/Projects/oe-devel/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/python-native/python: No such file or directory
---- end ----
Try 'use perf' in python, checking link problems: FAILED!
15: Test breakpoint overflow signal handler                :
--- start ---
count1 0, count2 0, overflow 0
failed: wrong count for bp10
failed: wrong overflow hit
failed: wrong count for bp2
---- end ----
Test breakpoint overflow signal handler: FAILED!
16: Test breakpoint overflow sampling                      :
--- start ---
count 0, overflow 0
	Wrong number of executions 0 != 10000
	Wrong number of overflows 0 != 100
---- end ----
Test breakpoint overflow sampling: FAILED!
17: Test number of exit event of a simple workload         :
--- start ---
Couldn't open the evlist: Operation not supported
---- end ----
Test number of exit event of a simple workload: FAILED!
18: Test software clock events have valid period values    :
--- start ---
---- end ----
Test software clock events have valid period values: Ok


More information about the meta-freescale mailing list