Wind River Support Network

HomeDefectsLIN1022-1070
Fixed

LIN1022-1070 : xilinux-zynq: perf: failed to record

Created: Jul 24, 2022    Updated: Nov 16, 2022
Resolved Date: Sep 5, 2022
Found In Version: 10.22.33.1
Fix Version: 10.22.33.2
Severity: Standard
Applicable for: Wind River Linux LTS 22
Component/s: Kernel

Description

This only happens on xlinx-zynq board.

setup.sh --machines xilinx-zynq --distro wrlinux --accept-eula=yes --dl-layers
. /environment-setup-x86_64-wrlinuxsdk-linux
. /oe-init-build-env build
echo 'IMAGE_INSTALL:append = " perf"' >>conf/local.conf
bitbake wrlinux-image-std

root@xilinx-zynq:~# cat /proc/version
Linux version 5.15.54-yocto-standard (oe-user@oe-host) (arm-wrs-linux-gnueabi-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220516) #1 SMP PREEMPT Thu Jul 14 18:53:04 UTC 2022
root@xilinx-zynq:~#

root@xilinx-zynq:~# perf probe -vvv -x /lib/libc.so.6 -a 'malloc'
probe-definition(0): malloc
symbol:malloc file:(null) line:0 offset:0 return:0 lazy:(null)
0 arguments
Opening /sys/kernel/tracing//uprobe_events write=1
Opening /sys/kernel/tracing//README write=0
Writing event: p:probe_libc/malloc /lib/libc.so.6:0x214e4
Writing event: p:probe_libc/malloc /lib/libc.so.6:0x68c24
Added new events:
probe_libc:malloc (on malloc in /lib/libc.so.6)
probe_libc:malloc (on malloc in /lib/libc.so.6)

You can now use it in all perf tools, such as:

perf record -e probe_libc:malloc -aR sleep 1

root@xilinx-zynq:~# perf record -e probe_libc:malloc -aR sleep 1
-----------[ cut here ]-----------
WARNING: CPU: 1 PID: 363 at kernel/trace/trace_dynevent.c:46 trace_event_dyn_put_ref+0x90/0xa4
Modules linked in: sch_fq_codel openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 fuse
CPU: 1 PID: 363 Comm: perf Not tainted 5.15.54-yocto-standard #1
Hardware name: Xilinx Zynq Platform
[<80110ce0>] (unwind_backtrace) from [<8010ad74>] (show_stack+0x18/0x1c)
[<8010ad74>] (show_stack) from [<80ad53ac>] (dump_stack_lvl+0x40/0x4c)
[<80ad53ac>] (dump_stack_lvl) from [<801226bc>] (__warn+0xcc/0xf8)
[<801226bc>] (__warn) from [<80acf94c>] (warn_slowpath_fmt+0x84/0xb8)
[<80acf94c>] (warn_slowpath_fmt) from [<80206c7c>] (trace_event_dyn_put_ref+0x90/0xa4)
[<80206c7c>] (trace_event_dyn_put_ref) from [<801f7474>] (perf_trace_init+0x9c/0xd4)
[<801f7474>] (perf_trace_init) from [<8024ff90>] (perf_tp_event_init+0x24/0x48)
[<8024ff90>] (perf_tp_event_init) from [<80251738>] (perf_try_init_event+0x58/0xc4)
[<80251738>] (perf_try_init_event) from [<802542d8>] (perf_event_alloc+0x4b4/0xb14)
[<802542d8>] (perf_event_alloc) from [<8025c614>] (__do_sys_perf_event_open+0x2a8/0x9d0)
[<8025c614>] (__do_sys_perf_event_open) from [<80100060>] (ret_fast_syscall+0x0/0x48)
Exception stack(0x83171fa8 to 0x83171ff0)
1fa0: 00000008 00000008 006df288 ffffffff 00000000 ffffffff
1fc0: 00000008 00000008 006f1d88 0000016c ffffffff 006ca3a0 00000000 0067c000
1fe0: 7eb127f8 7eb127e8 0050a241 766ca522
--[ end trace 0db1cdbeb6fbc843 ]--
Error:
The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (probe_libc:malloc).
/bin/dmesg | grep -i perf may provide additional information.

root@xilinx-zynq:~# 

Steps to Reproduce

/lpg-build/cdc/fast_prod/WRL10_22/WRL10_22_GIT/wrlinux-10/setup.sh --machines xilinx-zynq --distro wrlinux --accept-eula=yes --dl-layers

. environment-setup-x86_64-wrlinuxsdk-linux
. oe-init-build-env build

echo 'IMAGE_INSTALL:append = " perf"' >>conf/local.conf

bitbake wrlinux-image-std
Live chat
Online