From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/5] perf tools: Add dlfilter test
Date: Tue, 10 Aug 2021 17:21:39 -0300 [thread overview]
Message-ID: <YRLf0+ij2rNLvdRj@kernel.org> (raw)
In-Reply-To: <e0eba7e7-d9ae-eff4-254c-6fe16809a675@intel.com>
Em Tue, Aug 10, 2021 at 10:06:13PM +0300, Adrian Hunter escreveu:
> On 10/08/21 9:32 pm, Arnaldo Carvalho de Melo wrote:
> > Em Tue, Aug 10, 2021 at 02:48:13PM +0300, Adrian Hunter escreveu:
> >> Add a perf test to test the dlfilter C API.
> >>
> >> A perf.data file is synthesized and then processed by perf script with a
> >> dlfilter named dlfilter-test-api-v0.so. Also a C file is compiled to
> >> provide a dso to match the synthesized perf.data file.
> >
> > [root@five ~]# perf test dlfilter
> > 72: dlfilter C API : FAILED!
> > [root@five ~]# perf test -v dlfilter
> > 72: dlfilter C API :
> > --- start ---
> > test child forked, pid 3358542
> > Checking for gcc
> > Command: gcc --version
> > gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
> > Copyright (C) 2021 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions. There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> >
> > dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
> > Command: gcc -g -o /tmp/dlfilter-test-3358542-prog /tmp/dlfilter-test-3358542-prog.c
> > Creating new host machine structure
> > Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3358542-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
> > Failed with return value 139
> > test child finished with -1
> > ---- end ----
> > dlfilter C API: FAILED!
> > [root@five ~]# cat /etc/redhat-release
> > Fedora release 34 (Thirty Four)
> > [root@five ~]# cat /etc/os-release
> > NAME=Fedora
> > VERSION="34.20210721.0 (Silverblue)"
> > ID=fedora
> > VERSION_ID=34
> > VERSION_CODENAME=""
> > PLATFORM_ID="platform:f34"
> > PRETTY_NAME="Fedora 34.20210721.0 (Silverblue)"
> > ANSI_COLOR="0;38;2;60;110;180"
> > LOGO=fedora-logo-icon
> > CPE_NAME="cpe:/o:fedoraproject:fedora:34"
> > HOME_URL="https://fedoraproject.org/"
> > DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-silverblue/"
> > SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
> > BUG_REPORT_URL="https://bugzilla.redhat.com/"
> > REDHAT_BUGZILLA_PRODUCT="Fedora"
> > REDHAT_BUGZILLA_PRODUCT_VERSION=34
> > REDHAT_SUPPORT_PRODUCT="Fedora"
> > REDHAT_SUPPORT_PRODUCT_VERSION=34
> > PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
> > VARIANT="Silverblue"
> > VARIANT_ID=silverblue
> > OSTREE_VERSION='34.20210721.0'
> > [root@five ~]#
> >
> > Trying to figure this out...
>
> What does it give with two 'v''s ?
> i.e.
>
> perf test -vv dlfilter
What I've tried so far:
[root@five ~]# perf probe -x /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so -F
called.0
called.5
check_addr_al
check_al
check_attr
check_sample
completed.0
deregister_tm_clones
do_checks
filt_dat
filter_description
filter_description
filter_event
filter_event
filter_event_early
filter_event_early
frame_dummy
perf_dlfilter_fns
perf_dlfilter_fns
register_tm_clones
start
start
stop
stop
test_fail
verbose
[root@five ~]# perf probe -l
probe_dlfilter:check_addr_al (on check_addr_al in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:check_al (on check_al in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:check_attr (on check_attr in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:check_sample (on check_sample in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:filter_description (on filter_description in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:filter_event (on filter_event in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:filter_event_early (on filter_event_early in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:start (on start in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:stop (on stop in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
probe_dlfilter:test_fail (on test_fail in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
[root@five ~]# perf trace -e probe_dlfilter:*/max-stack=10/ perf test -v dlfilter
72: dlfilter C API :
--- start ---
test child forked, pid 3360902
Checking for gcc
Command: gcc --version
gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
Command: gcc -g -o /tmp/dlfilter-test-3360902-prog /tmp/dlfilter-test-3360902-prog.c
0.000 perf/3360902 probe_dlfilter:filter_description(__probe_ip: 140448631966717)
filter_description (/var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
test__dlfilter (/var/home/acme/bin/perf)
test_and_print (/var/home/acme/bin/perf)
cmd_test (/var/home/acme/bin/perf)
run_builtin (/var/home/acme/bin/perf)
main (/var/home/acme/bin/perf)
__libc_start_main (/usr/lib64/libc-2.33.so)
Creating new host machine structure
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3360902-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
Failed with return value 139
test child finished with -1
---- end ----
dlfilter C API: FAILED!
[root@five ~]# perf trace -e probe_dlfilter:*/max-stack=10/ perf test -vv dlfilter
72: dlfilter C API :
--- start ---
test child forked, pid 3360986
Checking for gcc
Command: gcc --version
0.000 :3360986/3360986 probe_dlfilter:filter_description(__probe_ip: 140709239057405)
filter_description (/var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
[0] ([unknown])
gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
Command: cat /tmp/dlfilter-test-3360986-prog.c ; echo
int bar(){};int foo(){bar();};int main(){foo();return 0;}
Command: gcc -g -o /tmp/dlfilter-test-3360986-prog /tmp/dlfilter-test-3360986-prog.c
Creating new host machine structure
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3360986-perf-data -D
0 [0x90]: event: 64
.
. ... raw event: size 144 bytes
. 0000: 40 00 00 00 00 00 90 00 00 00 00 00 80 00 00 00 @...............
. 0010: 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
. 0020: 8f 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0080: 00 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 ........c.......
-1 -1 0 [0x90]: PERF_RECORD_ATTR
0x90 [0x20]: event: 3
.
. ... raw event: size 32 bytes
. 0000: 03 00 00 00 02 00 20 00 39 30 00 00 3a 30 00 00 ...... .90..:0..
. 0010: 74 65 73 74 2d 70 72 6f 67 00 00 00 00 00 00 00 test-prog.......
-1 -1 0x90 [0x20]: PERF_RECORD_COMM: test-prog:12345/12346
0xb0 [0x48]: event: 1
.
. ... raw event: size 72 bytes
. 0000: 01 00 00 00 02 00 48 00 39 30 00 00 3a 30 00 00 ......H.90..:0..
. 0010: 00 00 40 00 00 00 00 00 00 00 01 00 00 00 00 00 ..@.............
. 0020: 00 00 00 00 00 00 00 00 2f 74 6d 70 2f 64 6c 66 ......../tmp/dlf
. 0030: 69 6c 74 65 72 2d 74 65 73 74 2d 33 33 36 30 39 ilter-test-33609
. 0040: 38 36 2d 70 72 6f 67 00 86-prog.
-1 -1 0xb0 [0x48]: PERF_RECORD_MMAP 12345/12346: [0x400000(0x10000) @ 0]: x /tmp/dlfilter-test-3360986-prog
0xf8 [0x48]: event: 9
.
. ... raw event: size 72 bytes
. 0000: 09 00 00 00 02 00 48 00 63 00 00 00 00 00 00 00 ......H.c.......
. 0010: 0d 11 40 00 00 00 00 00 39 30 00 00 3a 30 00 00 ..@.....90..:0..
. 0020: d2 02 96 49 00 00 00 00 06 11 40 00 00 00 00 00 <D2>..I......@.....
. 0030: 65 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 e...............
. 0040: 39 c3 60 20 00 00 00 00 9<C3>` ....
31 1234567890 0xf8 [0x48]: PERF_RECORD_SAMPLE(IP, 0x2): 12345/12346: 0x40110d period: 543212345 addr: 0x401106
... thread: test-prog:12346
...... dso: /tmp/dlfilter-test-3360986-prog
test-prog 12346 [031] 1.234567: 543212345 branches:HG: 40110d foo+0x0 (/tmp/dlfilter-test-3360986-prog) => 401106 bar+0x0 (/tmp/dlfilter-test-3360986-prog)
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3360986-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 2 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
Failed with return value 139
test child finished with -1
---- end ----
dlfilter C API: FAILED!
[root@five ~]# fg
-bash: fg: current: no such job
[root@five ~]# ls -la /tmp/dlfilter-test-3360986-perf-data
ls: cannot access '/tmp/dlfilter-test-3360986-perf-data': No such file or directory
[root@five ~]# ls -la /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so
-rwxr-xr-x. 2 acme acme 17352 Aug 10 15:31 /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so
[root@five ~]# perf trace -e probe_dlfilter:*/max-stack=10/ perf test -vvv dlfilter
72: dlfilter C API :
--- start ---
test child forked, pid 3361199
Checking for gcc
Command: gcc --version
gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
Command: cat /tmp/dlfilter-test-3361199-prog.c ; echo
int bar(){};int foo(){bar();};int main(){foo();return 0;}
Command: gcc -g -o /tmp/dlfilter-test-3361199-prog /tmp/dlfilter-test-3361199-prog.c
0.000 perf/3361199 probe_dlfilter:filter_description(__probe_ip: 140125348678653)
filter_description (/var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
test__dlfilter (/var/home/acme/bin/perf)
test_and_print (/var/home/acme/bin/perf)
cmd_test (/var/home/acme/bin/perf)
run_builtin (/var/home/acme/bin/perf)
main (/var/home/acme/bin/perf)
__libc_start_main (/usr/lib64/libc-2.33.so)
Command: objdump -x -dS /tmp/dlfilter-test-3361199-prog
/tmp/dlfilter-test-3361199-prog: file format elf64-x86-64
/tmp/dlfilter-test-3361199-prog
architecture: i386:x86-64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000401020
Program Header:
PHDR off 0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
filesz 0x00000000000002d8 memsz 0x00000000000002d8 flags r--
INTERP off 0x0000000000000318 vaddr 0x0000000000400318 paddr 0x0000000000400318 align 2**0
filesz 0x000000000000001c memsz 0x000000000000001c flags r--
LOAD off 0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**12
filesz 0x0000000000000498 memsz 0x0000000000000498 flags r--
LOAD off 0x0000000000001000 vaddr 0x0000000000401000 paddr 0x0000000000401000 align 2**12
filesz 0x00000000000001c5 memsz 0x00000000000001c5 flags r-x
LOAD off 0x0000000000002000 vaddr 0x0000000000402000 paddr 0x0000000000402000 align 2**12
filesz 0x0000000000000158 memsz 0x0000000000000158 flags r--
LOAD off 0x0000000000002e50 vaddr 0x0000000000403e50 paddr 0x0000000000403e50 align 2**12
filesz 0x00000000000001cc memsz 0x00000000000001d0 flags rw-
DYNAMIC off 0x0000000000002e60 vaddr 0x0000000000403e60 paddr 0x0000000000403e60 align 2**3
filesz 0x0000000000000190 memsz 0x0000000000000190 flags rw-
NOTE off 0x0000000000000338 vaddr 0x0000000000400338 paddr 0x0000000000400338 align 2**3
filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
NOTE off 0x0000000000000358 vaddr 0x0000000000400358 paddr 0x0000000000400358 align 2**2
filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
0x6474e553 off 0x0000000000000338 vaddr 0x0000000000400338 paddr 0x0000000000400338 align 2**3
filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
EH_FRAME off 0x0000000000002010 vaddr 0x0000000000402010 paddr 0x0000000000402010 align 2**2
filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
RELRO off 0x0000000000002e50 vaddr 0x0000000000403e50 paddr 0x0000000000403e50 align 2**0
filesz 0x00000000000001b0 memsz 0x00000000000001b0 flags r--
Dynamic Section:
NEEDED libc.so.6
INIT 0x0000000000401000
FINI 0x00000000004011b8
INIT_ARRAY 0x0000000000403e50
INIT_ARRAYSZ 0x0000000000000008
FINI_ARRAY 0x0000000000403e58
FINI_ARRAYSZ 0x0000000000000008
GNU_HASH 0x00000000004003a0
STRTAB 0x0000000000400408
SYMTAB 0x00000000004003c0
STRSZ 0x0000000000000038
SYMENT 0x0000000000000018
DEBUG 0x0000000000000000
RELA 0x0000000000400468
RELASZ 0x0000000000000030
RELAENT 0x0000000000000018
VERNEED 0x0000000000400448
VERNEEDNUM 0x0000000000000001
VERSYM 0x0000000000400440
Version References:
required from libc.so.6:
0x09691a75 0x00 02 GLIBC_2.2.5
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 0000001c 0000000000400318 0000000000400318 00000318 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .note.gnu.property 00000020 0000000000400338 0000000000400338 00000338 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .note.gnu.build-id 00000024 0000000000400358 0000000000400358 00000358 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .note.ABI-tag 00000020 000000000040037c 000000000040037c 0000037c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .gnu.hash 0000001c 00000000004003a0 00000000004003a0 000003a0 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .dynsym 00000048 00000000004003c0 00000000004003c0 000003c0 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .dynstr 00000038 0000000000400408 0000000000400408 00000408 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .gnu.version 00000006 0000000000400440 0000000000400440 00000440 2**1
CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .gnu.version_r 00000020 0000000000400448 0000000000400448 00000448 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
9 .rela.dyn 00000030 0000000000400468 0000000000400468 00000468 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
10 .init 0000001b 0000000000401000 0000000000401000 00001000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
11 .text 00000195 0000000000401020 0000000000401020 00001020 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
12 .fini 0000000d 00000000004011b8 00000000004011b8 000011b8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .rodata 00000010 0000000000402000 0000000000402000 00002000 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
14 .eh_frame_hdr 00000044 0000000000402010 0000000000402010 00002010 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
15 .eh_frame 00000100 0000000000402058 0000000000402058 00002058 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
16 .init_array 00000008 0000000000403e50 0000000000403e50 00002e50 2**3
CONTENTS, ALLOC, LOAD, DATA
17 .fini_array 00000008 0000000000403e58 0000000000403e58 00002e58 2**3
CONTENTS, ALLOC, LOAD, DATA
18 .dynamic 00000190 0000000000403e60 0000000000403e60 00002e60 2**3
CONTENTS, ALLOC, LOAD, DATA
19 .got 00000010 0000000000403ff0 0000000000403ff0 00002ff0 2**3
CONTENTS, ALLOC, LOAD, DATA
20 .got.plt 00000018 0000000000404000 0000000000404000 00003000 2**3
CONTENTS, ALLOC, LOAD, DATA
21 .data 00000004 0000000000404018 0000000000404018 00003018 2**0
CONTENTS, ALLOC, LOAD, DATA
22 .bss 00000004 000000000040401c 000000000040401c 0000301c 2**0
ALLOC
23 .comment 0000002e 0000000000000000 0000000000000000 0000301c 2**0
CONTENTS, READONLY
24 .gnu.build.attributes 00001978 0000000000406020 0000000000406020 0000304c 2**2
CONTENTS, READONLY, OCTETS
25 .debug_aranges 00000030 0000000000000000 0000000000000000 000049c4 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
26 .debug_info 00000090 0000000000000000 0000000000000000 000049f4 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
27 .debug_abbrev 0000006a 0000000000000000 0000000000000000 00004a84 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
28 .debug_line 00000065 0000000000000000 0000000000000000 00004aee 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
29 .debug_str 00000050 0000000000000000 0000000000000000 00004b53 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
30 .debug_line_str 0000002d 0000000000000000 0000000000000000 00004ba3 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
SYMBOL TABLE:
0000000000400318 l d .interp 0000000000000000 .interp
0000000000400338 l d .note.gnu.property 0000000000000000 .note.gnu.property
0000000000400358 l d .note.gnu.build-id 0000000000000000 .note.gnu.build-id
000000000040037c l d .note.ABI-tag 0000000000000000 .note.ABI-tag
00000000004003a0 l d .gnu.hash 0000000000000000 .gnu.hash
00000000004003c0 l d .dynsym 0000000000000000 .dynsym
0000000000400408 l d .dynstr 0000000000000000 .dynstr
0000000000400440 l d .gnu.version 0000000000000000 .gnu.version
0000000000400448 l d .gnu.version_r 0000000000000000 .gnu.version_r
0000000000400468 l d .rela.dyn 0000000000000000 .rela.dyn
0000000000401000 l d .init 0000000000000000 .init
0000000000401020 l d .text 0000000000000000 .text
00000000004011b8 l d .fini 0000000000000000 .fini
0000000000402000 l d .rodata 0000000000000000 .rodata
0000000000402010 l d .eh_frame_hdr 0000000000000000 .eh_frame_hdr
0000000000402058 l d .eh_frame 0000000000000000 .eh_frame
0000000000403e50 l d .init_array 0000000000000000 .init_array
0000000000403e58 l d .fini_array 0000000000000000 .fini_array
0000000000403e60 l d .dynamic 0000000000000000 .dynamic
0000000000403ff0 l d .got 0000000000000000 .got
0000000000404000 l d .got.plt 0000000000000000 .got.plt
0000000000404018 l d .data 0000000000000000 .data
000000000040401c l d .bss 0000000000000000 .bss
0000000000000000 l d .comment 0000000000000000 .comment
0000000000406020 l d .gnu.build.attributes 0000000000000000 .gnu.build.attributes
0000000000000000 l d .debug_aranges 0000000000000000 .debug_aranges
0000000000000000 l d .debug_info 0000000000000000 .debug_info
0000000000000000 l d .debug_abbrev 0000000000000000 .debug_abbrev
0000000000000000 l d .debug_line 0000000000000000 .debug_line
0000000000000000 l d .debug_str 0000000000000000 .debug_str
0000000000000000 l d .debug_line_str 0000000000000000 .debug_line_str
0000000000000000 l df *ABS* 0000000000000000 /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/crt1.o
000000000040104f l .text 0000000000000000 .hidden .annobin_lto
000000000040104f l .text 0000000000000000 .hidden .annobin_lto_end
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.hot
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.hot
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.unlikely
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.unlikely
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.startup
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.startup
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.exit
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.exit
000000000040037c l O .note.ABI-tag 0000000000000020 __abi_tag
000000000040104f l .text 0000000000000000 .hidden .annobin_lto
000000000040104f l .text 0000000000000000 .hidden .annobin_lto_end
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.hot
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.hot
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.unlikely
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.unlikely
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.startup
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.startup
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.exit
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.exit
0000000000401050 l .text 0000000000000000 .hidden .annobin_lto
0000000000401055 l .text 0000000000000000 .hidden .annobin_lto_end
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.hot
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.hot
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.unlikely
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.unlikely
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.startup
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.startup
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto.exit
0000000000401020 l .text 0000000000000000 .hidden .annobin_lto_end.exit
0000000000401050 l .text 0000000000000000 .hidden .annobin__dl_relocate_static_pie.start
0000000000401055 l .text 0000000000000000 .hidden .annobin__dl_relocate_static_pie.end
0000000000000000 l df *ABS* 0000000000000000 crtstuff.c
0000000000401060 l F .text 0000000000000000 deregister_tm_clones
0000000000401090 l F .text 0000000000000000 register_tm_clones
00000000004010d0 l F .text 0000000000000000 __do_global_dtors_aux
000000000040401c l O .bss 0000000000000001 completed.0
0000000000403e58 l O .fini_array 0000000000000000 __do_global_dtors_aux_fini_array_entry
0000000000401100 l F .text 0000000000000000 frame_dummy
0000000000403e50 l O .init_array 0000000000000000 __frame_dummy_init_array_entry
0000000000000000 l df *ABS* 0000000000000000 dlfilter-test-3361199-prog.c
0000000000000000 l df *ABS* 0000000000000000 crtstuff.c
0000000000402154 l O .eh_frame 0000000000000000 __FRAME_END__
0000000000000000 l df *ABS* 0000000000000000
0000000000403e58 l .init_array 0000000000000000 __init_array_end
0000000000403e60 l O .dynamic 0000000000000000 _DYNAMIC
0000000000403e50 l .init_array 0000000000000000 __init_array_start
0000000000402010 l .eh_frame_hdr 0000000000000000 __GNU_EH_FRAME_HDR
0000000000404000 l O .got.plt 0000000000000000 _GLOBAL_OFFSET_TABLE_
00000000004011b0 g F .text 0000000000000005 __libc_csu_fini
0000000000404018 w .data 0000000000000000 data_start
000000000040401c g .data 0000000000000000 _edata
0000000000401106 g F .text 0000000000000007 bar
00000000004011b8 g F .fini 0000000000000000 .hidden _fini
0000000000000000 F *UND* 0000000000000000 __libc_start_main@@GLIBC_2.2.5
0000000000404018 g .data 0000000000000000 __data_start
0000000000000000 w *UND* 0000000000000000 __gmon_start__
0000000000402008 g O .rodata 0000000000000000 .hidden __dso_handle
0000000000402000 g O .rodata 0000000000000004 _IO_stdin_used
0000000000401140 g F .text 0000000000000065 __libc_csu_init
000000000040110d g F .text 0000000000000011 foo
0000000000404020 g .bss 0000000000000000 _end
0000000000401050 g F .text 0000000000000005 .hidden _dl_relocate_static_pie
0000000000401020 g F .text 000000000000002f _start
000000000040401c g .bss 0000000000000000 __bss_start
000000000040111e g F .text 0000000000000015 main
0000000000404020 g O .data 0000000000000000 .hidden __TMC_END__
0000000000401000 g F .init 0000000000000000 .hidden _init
Disassembly of section .init:
0000000000401000 <_init>:
401000: f3 0f 1e fa endbr64
401004: 48 83 ec 08 sub $0x8,%rsp
401008: 48 8b 05 e9 2f 00 00 mov 0x2fe9(%rip),%rax # 403ff8 <__gmon_start__>
40100f: 48 85 c0 test %rax,%rax
401012: 74 02 je 401016 <_init+0x16>
401014: ff d0 callq *%rax
401016: 48 83 c4 08 add $0x8,%rsp
40101a: c3 retq
Disassembly of section .text:
0000000000401020 <_start>:
401020: f3 0f 1e fa endbr64
401024: 31 ed xor %ebp,%ebp
401026: 49 89 d1 mov %rdx,%r9
401029: 5e pop %rsi
40102a: 48 89 e2 mov %rsp,%rdx
40102d: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp
401031: 50 push %rax
401032: 54 push %rsp
401033: 49 c7 c0 b0 11 40 00 mov $0x4011b0,%r8
40103a: 48 c7 c1 40 11 40 00 mov $0x401140,%rcx
401041: 48 c7 c7 1e 11 40 00 mov $0x40111e,%rdi
401048: ff 15 a2 2f 00 00 callq *0x2fa2(%rip) # 403ff0 <__libc_start_main@GLIBC_2.2.5>
40104e: f4 hlt
000000000040104f <.annobin_lto>:
40104f: 90 nop
0000000000401050 <_dl_relocate_static_pie>:
401050: f3 0f 1e fa endbr64
401054: c3 retq
0000000000401055 <.annobin__dl_relocate_static_pie.end>:
401055: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
40105c: 00 00 00
40105f: 90 nop
0000000000401060 <deregister_tm_clones>:
401060: b8 20 40 40 00 mov $0x404020,%eax
401065: 48 3d 20 40 40 00 cmp $0x404020,%rax
40106b: 74 13 je 401080 <deregister_tm_clones+0x20>
40106d: b8 00 00 00 00 mov $0x0,%eax
401072: 48 85 c0 test %rax,%rax
401075: 74 09 je 401080 <deregister_tm_clones+0x20>
401077: bf 20 40 40 00 mov $0x404020,%edi
40107c: ff e0 jmpq *%rax
40107e: 66 90 xchg %ax,%ax
401080: c3 retq
401081: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
401088: 00 00 00 00
40108c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000401090 <register_tm_clones>:
401090: be 20 40 40 00 mov $0x404020,%esi
401095: 48 81 ee 20 40 40 00 sub $0x404020,%rsi
40109c: 48 89 f0 mov %rsi,%rax
40109f: 48 c1 ee 3f shr $0x3f,%rsi
4010a3: 48 c1 f8 03 sar $0x3,%rax
4010a7: 48 01 c6 add %rax,%rsi
4010aa: 48 d1 fe sar %rsi
4010ad: 74 11 je 4010c0 <register_tm_clones+0x30>
4010af: b8 00 00 00 00 mov $0x0,%eax
4010b4: 48 85 c0 test %rax,%rax
4010b7: 74 07 je 4010c0 <register_tm_clones+0x30>
4010b9: bf 20 40 40 00 mov $0x404020,%edi
4010be: ff e0 jmpq *%rax
4010c0: c3 retq
4010c1: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
4010c8: 00 00 00 00
4010cc: 0f 1f 40 00 nopl 0x0(%rax)
00000000004010d0 <__do_global_dtors_aux>:
4010d0: f3 0f 1e fa endbr64
4010d4: 80 3d 41 2f 00 00 00 cmpb $0x0,0x2f41(%rip) # 40401c <completed.0>
4010db: 75 13 jne 4010f0 <__do_global_dtors_aux+0x20>
4010dd: 55 push %rbp
4010de: 48 89 e5 mov %rsp,%rbp
4010e1: e8 7a ff ff ff callq 401060 <deregister_tm_clones>
4010e6: c6 05 2f 2f 00 00 01 movb $0x1,0x2f2f(%rip) # 40401c <completed.0>
4010ed: 5d pop %rbp
4010ee: c3 retq
4010ef: 90 nop
4010f0: c3 retq
4010f1: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
4010f8: 00 00 00 00
4010fc: 0f 1f 40 00 nopl 0x0(%rax)
0000000000401100 <frame_dummy>:
401100: f3 0f 1e fa endbr64
401104: eb 8a jmp 401090 <register_tm_clones>
0000000000401106 <bar>:
401106: 55 push %rbp
401107: 48 89 e5 mov %rsp,%rbp
40110a: 90 nop
40110b: 5d pop %rbp
40110c: c3 retq
000000000040110d <foo>:
40110d: 55 push %rbp
40110e: 48 89 e5 mov %rsp,%rbp
401111: b8 00 00 00 00 mov $0x0,%eax
401116: e8 eb ff ff ff callq 401106 <bar>
40111b: 90 nop
40111c: 5d pop %rbp
40111d: c3 retq
000000000040111e <main>:
40111e: 55 push %rbp
40111f: 48 89 e5 mov %rsp,%rbp
401122: b8 00 00 00 00 mov $0x0,%eax
401127: e8 e1 ff ff ff callq 40110d <foo>
40112c: b8 00 00 00 00 mov $0x0,%eax
401131: 5d pop %rbp
401132: c3 retq
401133: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
40113a: 00 00 00
40113d: 0f 1f 00 nopl (%rax)
0000000000401140 <__libc_csu_init>:
401140: f3 0f 1e fa endbr64
401144: 41 57 push %r15
401146: 4c 8d 3d 03 2d 00 00 lea 0x2d03(%rip),%r15 # 403e50 <__frame_dummy_init_array_entry>
40114d: 41 56 push %r14
40114f: 49 89 d6 mov %rdx,%r14
401152: 41 55 push %r13
401154: 49 89 f5 mov %rsi,%r13
401157: 41 54 push %r12
401159: 41 89 fc mov %edi,%r12d
40115c: 55 push %rbp
40115d: 48 8d 2d f4 2c 00 00 lea 0x2cf4(%rip),%rbp # 403e58 <__do_global_dtors_aux_fini_array_entry>
401164: 53 push %rbx
401165: 4c 29 fd sub %r15,%rbp
401168: 48 83 ec 08 sub $0x8,%rsp
40116c: e8 8f fe ff ff callq 401000 <_init>
401171: 48 c1 fd 03 sar $0x3,%rbp
401175: 74 1f je 401196 <__libc_csu_init+0x56>
401177: 31 db xor %ebx,%ebx
401179: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
401180: 4c 89 f2 mov %r14,%rdx
401183: 4c 89 ee mov %r13,%rsi
401186: 44 89 e7 mov %r12d,%edi
401189: 41 ff 14 df callq *(%r15,%rbx,8)
40118d: 48 83 c3 01 add $0x1,%rbx
401191: 48 39 dd cmp %rbx,%rbp
401194: 75 ea jne 401180 <__libc_csu_init+0x40>
401196: 48 83 c4 08 add $0x8,%rsp
40119a: 5b pop %rbx
40119b: 5d pop %rbp
40119c: 41 5c pop %r12
40119e: 41 5d pop %r13
4011a0: 41 5e pop %r14
4011a2: 41 5f pop %r15
4011a4: c3 retq
4011a5: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
4011ac: 00 00 00 00
00000000004011b0 <__libc_csu_fini>:
4011b0: f3 0f 1e fa endbr64
4011b4: c3 retq
Disassembly of section .fini:
00000000004011b8 <_fini>:
4011b8: f3 0f 1e fa endbr64
4011bc: 48 83 ec 08 sub $0x8,%rsp
4011c0: 48 83 c4 08 add $0x8,%rsp
4011c4: c3 retq
Creating new host machine structure
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3361199-perf-data -D
0 [0x90]: event: 64
.
. ... raw event: size 144 bytes
. 0000: 40 00 00 00 00 00 90 00 00 00 00 00 80 00 00 00 @...............
. 0010: 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
. 0020: 8f 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
. 0080: 00 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 ........c.......
-1 -1 0 [0x90]: PERF_RECORD_ATTR
0x90 [0x20]: event: 3
.
. ... raw event: size 32 bytes
. 0000: 03 00 00 00 02 00 20 00 39 30 00 00 3a 30 00 00 ...... .90..:0..
. 0010: 74 65 73 74 2d 70 72 6f 67 00 00 00 00 00 00 00 test-prog.......
-1 -1 0x90 [0x20]: PERF_RECORD_COMM: test-prog:12345/12346
0xb0 [0x48]: event: 1
.
. ... raw event: size 72 bytes
. 0000: 01 00 00 00 02 00 48 00 39 30 00 00 3a 30 00 00 ......H.90..:0..
. 0010: 00 00 40 00 00 00 00 00 00 00 01 00 00 00 00 00 ..@.............
. 0020: 00 00 00 00 00 00 00 00 2f 74 6d 70 2f 64 6c 66 ......../tmp/dlf
. 0030: 69 6c 74 65 72 2d 74 65 73 74 2d 33 33 36 31 31 ilter-test-33611
. 0040: 39 39 2d 70 72 6f 67 00 99-prog.
-1 -1 0xb0 [0x48]: PERF_RECORD_MMAP 12345/12346: [0x400000(0x10000) @ 0]: x /tmp/dlfilter-test-3361199-prog
0xf8 [0x48]: event: 9
.
. ... raw event: size 72 bytes
. 0000: 09 00 00 00 02 00 48 00 63 00 00 00 00 00 00 00 ......H.c.......
. 0010: 0d 11 40 00 00 00 00 00 39 30 00 00 3a 30 00 00 ..@.....90..:0..
. 0020: d2 02 96 49 00 00 00 00 06 11 40 00 00 00 00 00 <D2>..I......@.....
. 0030: 65 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 e...............
. 0040: 39 c3 60 20 00 00 00 00 9<C3>` ....
31 1234567890 0xf8 [0x48]: PERF_RECORD_SAMPLE(IP, 0x2): 12345/12346: 0x40110d period: 543212345 addr: 0x401106
... thread: test-prog:12346
...... dso: /tmp/dlfilter-test-3361199-prog
test-prog 12346 [031] 1.234567: 543212345 branches:HG: 40110d foo+0x0 (/tmp/dlfilter-test-3361199-prog) => 401106 bar+0x0 (/tmp/dlfilter-test-3361199-prog)
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3361199-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 3 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
Failed with return value 139
test child finished with -1
---- end ----
dlfilter C API: FAILED!
[root@five ~]#
next prev parent reply other threads:[~2021-08-10 20:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-10 11:48 [PATCH 0/5] perf tools: Add dlfilter test Adrian Hunter
2021-08-10 11:48 ` [PATCH 1/5] perf script: Fix unnecessary machine_resolve() Adrian Hunter
2021-08-10 18:25 ` Arnaldo Carvalho de Melo
2021-08-11 10:18 ` Adrian Hunter
2021-08-10 11:48 ` [PATCH 2/5] perf script: Fix --list-dlfilters documentation Adrian Hunter
2021-08-10 18:28 ` Arnaldo Carvalho de Melo
2021-08-10 11:48 ` [PATCH 3/5] perf tools: Amend dlfilter documentation wrt library dependencies Adrian Hunter
2021-08-10 11:48 ` [PATCH 4/5] perf tools: Move perf_dlfilters.h in the source tree Adrian Hunter
2021-08-10 11:48 ` [PATCH 5/5] perf tools: Add dlfilter test Adrian Hunter
2021-08-10 18:32 ` Arnaldo Carvalho de Melo
2021-08-10 19:06 ` Adrian Hunter
2021-08-10 20:21 ` Arnaldo Carvalho de Melo [this message]
2021-08-11 10:10 ` Adrian Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YRLf0+ij2rNLvdRj@kernel.org \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.