lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <aXjvF3N5ZGJlZzFi@x1>
Date: Tue, 27 Jan 2026 14:00:07 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Dmitrii Dolgov <9erthalion6@...il.com>
Cc: linux-perf-users@...r.kernel.org, Namhyung Kim <namhyung@...nel.org>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH v1] perf tests: Test annotate with data type
 profiling and rust

On Tue, Jan 27, 2026 at 09:30:27AM +0100, Dmitrii Dolgov wrote:
> Exercise the annotate command with data type profiling feature on the
> rust runtime:
 
> * Add a new type of workload code_with_type, which has a dummy rust
>   library linked with it. It's recommended that for such scenarios rust
>   library is statically linked [1].
 
> * Add a new shell test, which will profile the new workload, then
>   annotate the result expecting to see some data structures from the
>   rust code.

I think this should be split into at least two patchs, one introducing
the new workload and then the new perf test.

Trying it now it is failing for me on both an AMD 9950X3D with Fedora 43
and on a Gen Intel(R) Core(TM) i7-1365U Lenovo X1 Carbon notebook also
with Fedora 43, both with:

⬢ [acme@...lbx perf-tools-next]$ rustc --version
rustc 1.92.0 (ded5c06cf 2025-12-08) (Fedora 1.92.0-1.fc43)
⬢ [acme@...lbx perf-tools-next]$


Isn't that 'perf record' just using cycles? Wouldn't it be better to use
'perf mem record'?

Like:

acme@x1:~/git/perf-tools-next$ tools/perf/perf mem record perf test -w code_with_type
Error:
Failure to open event 'cpu_core/mem-loads,ldlat=30/u' on PMU 'cpu_core' which will be removed.
No fallback found for 'cpu_core/mem-loads,ldlat=30/u' for error 61
[ perf record: Woken up 2 times to write data ]
[ perf record: Captured and wrote 0.351 MB perf.data (4672 samples) ]
acme@x1:~/git/perf-tools-next$ perf evlist -v
cpu_atom/mem-loads,ldlat=30/Pu: type: 10 (cpu_atom), size: 144, config: 0x5d0 (mem_uops_retired.load_latency_gt_16), { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|PERIOD|IDENTIFIER|DATA_SRC|WEIGHT_STRUCT, read_format: ID|LOST, disabled: 1, inherit: 1, exclude_kernel: 1, exclude_hv: 1, freq: 1, enable_on_exec: 1, precise_ip: 3, sample_id_all: 1, { bp_addr, config1 }: 0x1f
cpu_atom/mem-stores/Pu: type: 10 (cpu_atom), size: 144, config: 0x6d0 (mem_uops_retired.store_latency), { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|PERIOD|IDENTIFIER|DATA_SRC|WEIGHT_STRUCT, read_format: ID|LOST, disabled: 1, inherit: 1, exclude_kernel: 1, exclude_hv: 1, freq: 1, enable_on_exec: 1, precise_ip: 3, sample_id_all: 1
cpu_core/mem-loads-aux/u: type: 4 (cpu_core), size: 144, config: 0x8203 (mem-loads-aux), { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|PERIOD|IDENTIFIER|DATA_SRC|WEIGHT_STRUCT, read_format: ID|LOST, disabled: 1, inherit: 1, exclude_kernel: 1, exclude_hv: 1, freq: 1, enable_on_exec: 1, precise_ip: 3, sample_id_all: 1
cpu_core/mem-stores/Pu: type: 4 (cpu_core), size: 144, config: 0x2cd (mem-stores), { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|PERIOD|IDENTIFIER|DATA_SRC|WEIGHT_STRUCT, read_format: ID|LOST, disabled: 1, inherit: 1, exclude_kernel: 1, exclude_hv: 1, freq: 1, enable_on_exec: 1, precise_ip: 3, sample_id_all: 1
dummy:u: type: 1 (PERF_TYPE_SOFTWARE), size: 144, config: 0x9 (PERF_COUNT_SW_DUMMY), { sample_period, sample_freq }: 1, sample_type: IP|TID|TIME|ADDR|IDENTIFIER|DATA_SRC|WEIGHT_STRUCT, read_format: ID|LOST, inherit: 1, exclude_kernel: 1, exclude_hv: 1, mmap: 1, comm: 1, task: 1, mmap_data: 1, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, ksymbol: 1, bpf_event: 1, build_id: 1
# Tip: use 'perf evlist -g' to show group information
acme@x1:~/git/perf-tools-next$

Then:

perf annotate --code-with-type 

And one of the functions on the TUI is:

Samples: 4K of events 'anon group { cpu_core/mem-loads-aux/u, cpu_core/mem-stores/Pu }', 4000 Hz, Event count (approx.): 2746033426
alloc::raw_vec::RawVecInner<A>::with_capacity_in  /home/acme/git/perf-tools-next/tools/perf/perf [Percent: local period] [Type]


[Type] is there, matching --code-with-type, but I see no types in the
annotation output., even with { cpu_core/mem-loads-aux/u, cpu_core/mem-stores/Pu }

Now on the 9950X3D, AMD, using IBS:

acme@...ber:~/git/perf-tools-next$ tools/perf/perf mem record perf test -w code_with_type
Error:
Failure to open event 'ibs_op/ldlat=0/u' on PMU 'ibs_op' which will be removed.
No fallback found for 'ibs_op/ldlat=0/u' for error 22
Error:
Failure to open any events for recording.
acme@...ber:~/git/perf-tools-next$ sudo tools/perf/perf mem record perf test -w code_with_type
[ perf record: Woken up 2 times to write data ]
[ perf record: Captured and wrote 0.307 MB perf.data (4005 samples) ]
acme@...ber:~/git/perf-tools-next$ sudo tools/perf/perf annotate --code-with-type
File perf.data not owned by current user or root (use -f to override)
acme@...ber:~/git/perf-tools-next$ sudo tools/perf/perf annotate -f --code-with-type

Again, [Type] is there, but no types:

Samples: 4K of event 'ibs_op/ldlat=0/', 4000 Hz, Event count (approx.): 5414001952
test_rs  /home/acme/git/perf-tools-next/tools/perf/perf [Percent: local period] [Type]
   0.14 │       sub    $0x98,%rsp                                                                                                                                       ◆
        │       mov    %edi,0x2c(%rsp)                                                                                                                                  ▒
        │       mov    %edi,0x84(%rsp)                                                                                                                                  ▒
        │       lea    _IO_stdin_used+0x20,%rsi                                                                                                                         ▒
   0.07 │       lea    0x60(%rsp),%rdi                                                                                                                                  ▒
   0.07 │       mov    $0x4,%edx                                                                                                                                        ▒
        │     → call   <alloc::string::String as core::convert::From<&str>>::f

I'm not managing to reproduce your results, can you please elaborate
some more?

- Arnaldo

The tests with your patch as-is:


⬢ [acme@...lbx perf-tools-next]$ m
make: Entering directory '/home/acme/git/perf-tools-next/tools/perf'
  BUILD:   Doing 'make -j32' parallel build
Warning: Kernel ABI header differences:
  diff -u tools/arch/arm64/include/asm/cputype.h arch/arm64/include/asm/cputype.h
  diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl arch/s390/kernel/syscalls/syscall.tbl

Auto-detecting system features:
...                                   libdw: [ on  ]
...                                   glibc: [ on  ]
...                                  libelf: [ on  ]
...                                 libnuma: [ on  ]
...                  numa_num_possible_cpus: [ on  ]
...                               libpython: [ on  ]
...                             libcapstone: [ on  ]
...                               llvm-perf: [ on  ]
...                                    zlib: [ on  ]
...                                    lzma: [ on  ]
...                                     bpf: [ on  ]
...                                  libaio: [ on  ]
...                                 libzstd: [ on  ]
...                              libopenssl: [ on  ]

  INSTALL libsubcmd_headers
  INSTALL libperf_headers
  INSTALL libapi_headers
  INSTALL libsymbol_headers
  INSTALL libbpf_headers
  AR      /tmp/build/perf-tools-next/libpmu-events.a
make[5]: *** No rule to make target '/tmp/build/perf-tools-next/tests/workloads/libcode_with_type.a', needed by '/tmp/build/perf-tools-next/tests/workloads/perf-test-in.o'.  Stop.
make[4]: *** [/home/acme/git/perf-tools-next/tools/build/Makefile.build:156: workloads] Error 2
make[3]: *** [/home/acme/git/perf-tools-next/tools/build/Makefile.build:156: tests] Error 2
make[2]: *** [Makefile.perf:784: /tmp/build/perf-tools-next/perf-test-in.o] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile.perf:288: sub-make] Error 2
make: *** [Makefile:119: install-bin] Error 2
make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf'
⬢ [acme@...lbx perf-tools-next]$

I don't have rust installed in this container, in this case we need some
sort of capability query to tell the user that rust is needed for this
feature to be present in perf.

Lemme try installing it:

$ sudo dnf install rust

Not enough.

I see, it doesn't work if I use 'make O=/some/directory/ -C tools/perf'

Worked when I did:

make -C tools/perf

Where it ended up doing:

  CC      util/namespaces.o
  CC      util/comm.o
  CC      util/thread.o
  CC      util/threads.o
  CC      util/thread_map.o
  rustc  tests/workloads/libcode_with_type.a
  CC      util/parse-events-bison.o
  BISON   util/pmu-bison.c


⬢ [acme@...lbx perf-tools-next]$ tools/perf/perf test "data type profiling"
 83: perf data type profiling tests                                  : FAILED!
⬢ [acme@...lbx perf-tools-next]$ tools/perf/perf test -v "data type profiling"
Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
--- start ---
test child forked, pid 1455079
Basic perf annotate test
Basic annotate [Failed: missing target data type]
 Percent |	Source code & Disassembly of perf for cpu/cycles/Pu (1718 samples, percent: local period)
---------------------------------------------------------------------------------------------------------
         : 0      0x55bcb0 <test_rs>:
    0.00 :   55bcb0:        subq    $0x98, %rsp
    0.24 :   55bcb7:        movl    %edi, 0x2c(%rsp)
    0.12 :   55bcbb:        movl    %edi, 0x84(%rsp)
    0.00 :   55bcc2:        leaq    0x22b557(%rip), %rsi  # 0x787220
    0.00 :   55bcc9:        leaq    0x60(%rsp), %rdi
    0.00 :   55bcce:        movl    $0x4, %edx
    0.00 :   55bcd3:        callq   0x55baf0 <<alloc::string::String as core::convert::From<&str>>::from>
    0.06 :   55bcd8:        jmp     0x55bce0 <test_rs+0x30>
    0.00 :   55bcda:        callq   *0xa493b0(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bce0:        movl    0x2c(%rsp), %esi
    0.00 :   55bce4:        movq    $0x0, 0x48(%rsp)
    0.00 :   55bced:        movq    0x70(%rsp), %rax
    0.06 :   55bcf2:        movq    %rax, 0x40(%rsp)
    0.00 :   55bcf7:        movups  0x60(%rsp), %xmm0
    8.01 :   55bcfc:        movaps  %xmm0, 0x30(%rsp)
    0.00 :   55bd01:        movq    $0x0, 0x50(%rsp)
    0.00 :   55bd0a:        movl    $0x1, %edi
    0.00 :   55bd0f:        callq   0x55bae0 <<I as core::iter::traits::collect::IntoIterator>::into_iter>
    0.00 :   55bd14:        movl    %edx, 0x24(%rsp)
    0.00 :   55bd18:        movl    %eax, 0x28(%rsp)
    0.00 :   55bd1c:        jmp     0x55bd40 <test_rs+0x90>
    0.00 :   55bd1e:        leaq    0x30(%rsp), %rdi
    0.00 :   55bd23:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd28:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bd2a:        movq    %rax, %rcx
    0.00 :   55bd2d:        movl    %edx, %eax
    0.00 :   55bd2f:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bd37:        movl    %eax, 0x90(%rsp)
    0.00 :   55bd3e:        jmp     0x55bd1e <test_rs+0x6e>
    0.00 :   55bd40:        movl    0x24(%rsp), %eax
    0.00 :   55bd44:        movl    0x28(%rsp), %ecx
    0.00 :   55bd48:        movl    %ecx, 0x7c(%rsp)
    0.00 :   55bd4c:        movl    %eax, 0x80(%rsp)
    0.22 :   55bd53:        leaq    0x7c(%rsp), %rdi
   70.17 :   55bd58:        callq   0x55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>
    0.00 :   55bd5d:        movl    %eax, 0x20(%rsp)
   19.94 :   55bd61:        jmp     0x55bd63 <test_rs+0xb3>
    0.00 :   55bd63:        movl    0x20(%rsp), %eax
    0.62 :   55bd67:        movl    %eax, %eax
    0.00 :   55bd69:        testq   $0x1, %rax
    0.00 :   55bd6f:        je      0x55bd89 <test_rs+0xd9>
    0.00 :   55bd71:        movq    0x48(%rsp), %rcx
    0.00 :   55bd76:        movq    %rcx, %rax
    0.12 :   55bd79:        addq    $0x1, %rax
    0.00 :   55bd7d:        movq    %rax, 0x18(%rsp)
    0.00 :   55bd82:        cmpq    %rcx, %rax
    0.00 :   55bd85:        jb      0x55bdcd <test_rs+0x11d>
    0.00 :   55bd87:        jmp     0x55bdb9 <test_rs+0x109>
    0.00 :   55bd89:        leaq    0x30(%rsp), %rdi
    0.06 :   55bd8e:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.06 :   55bd93:        jmp     0x55bdb1 <test_rs+0x101>
    0.00 :   55bd95:        callq   *0xa492f5(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bd9b:        movq    %rax, %rcx
    0.00 :   55bd9e:        movl    %edx, %eax
    0.00 :   55bda0:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bda8:        movl    %eax, 0x90(%rsp)
    0.00 :   55bdaf:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bdb1:        addq    $0x98, %rsp
    0.00 :   55bdb8:        retq
    0.00 :   55bdb9:        movq    0x18(%rsp), %rax
    0.00 :   55bdbe:        movq    %rax, 0x48(%rsp)
    0.00 :   55bdc3:        cmpq    $0x7b, 0x48(%rsp)
    0.05 :   55bdc9:        je      0x55bde1 <test_rs+0x131>
    0.00 :   55bdcb:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55bdcd:        leaq    0xa3fc44(%rip), %rdi  # 0xf9ba18
    0.00 :   55bdd4:        leaq    -0x150ffb(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55bddb:        callq   *%rax
    0.00 :   55bddd:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55bddf:        ud2
    0.00 :   55bde1:        movq    0x48(%rsp), %rcx
    0.00 :   55bde6:        movq    %rcx, %rax
    0.00 :   55bde9:        addq    $0x1, %rax
    0.00 :   55bded:        movq    %rax, 0x10(%rsp)
    0.00 :   55bdf2:        cmpq    %rcx, %rax
    0.00 :   55bdf5:        jb      0x55be21 <test_rs+0x171>
    0.00 :   55bdf7:        jmp     0x55be15 <test_rs+0x165>
    0.00 :   55bdf9:        movq    0x48(%rsp), %rdx
    0.06 :   55bdfe:        movq    0x50(%rsp), %rcx
    0.00 :   55be03:        movq    %rcx, %rax
    0.00 :   55be06:        addq    %rdx, %rax
    0.00 :   55be09:        movq    %rax, 0x8(%rsp)
    0.06 :   55be0e:        cmpq    %rcx, %rax
    0.00 :   55be11:        jb      0x55be42 <test_rs+0x192>
    0.00 :   55be13:        jmp     0x55be33 <test_rs+0x183>
    0.00 :   55be15:        movq    0x10(%rsp), %rax
    0.00 :   55be1a:        movq    %rax, 0x48(%rsp)
    0.00 :   55be1f:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55be21:        leaq    0xa3fc08(%rip), %rdi  # 0xf9ba30
    0.00 :   55be28:        leaq    -0x15104f(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be2f:        callq   *%rax
    0.00 :   55be31:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be33:        movq    0x8(%rsp), %rax
    0.16 :   55be38:        movq    %rax, 0x50(%rsp)
    0.00 :   55be3d:        jmp     0x55bd53 <test_rs+0xa3>
    0.00 :   55be42:        leaq    0xa3fbff(%rip), %rdi  # 0xf9ba48
    0.00 :   55be49:        leaq    -0x151070(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be50:        callq   *%rax
    0.00 :   55be52:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be54:        callq   *0xa49c2e(%rip)  # 0xfa5a88 <_DYNAMIC+0x1048>
 Percent |	Source code & Disassembly of perf for cpu/cycles/Pu (1050 samples, percent: local period)
---------------------------------------------------------------------------------------------------------
         : 0      0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    0.00 :   55bc40:        subq    $0x38, %rsp
   17.94 :   55bc44:        movq    %rdi, 0x8(%rsp)
    0.00 :   55bc49:        movq    %rdi, 0x18(%rsp)
    3.18 :   55bc4e:        movq    %rdi, %rax
    0.00 :   55bc51:        addq    $0x4, %rax
    0.00 :   55bc55:        movq    %rdi, 0x28(%rsp)
    0.00 :   55bc5a:        movq    %rax, 0x30(%rsp)
    0.08 :   55bc5f:        movl    (%rdi), %eax
    0.92 :   55bc61:        cmpl    0x4(%rdi), %eax
    0.00 :   55bc64:        jb      0x55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    0.00 :   55bc66:        movl    $0x0, 0x10(%rsp)
    0.00 :   55bc6e:        jmp     0x55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    0.00 :   55bc70:        movq    0x8(%rsp), %rax
    1.82 :   55bc75:        movl    (%rax), %edi
    0.08 :   55bc77:        movl    %edi, 0x4(%rsp)
    0.00 :   55bc7b:        movl    %edi, 0x24(%rsp)
    0.00 :   55bc7f:        movl    $0x1, %esi
    0.00 :   55bc84:        callq   0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    0.08 :   55bc89:        movq    0x8(%rsp), %rcx
   73.65 :   55bc8e:        movl    %eax, %edx
    0.00 :   55bc90:        movl    0x4(%rsp), %eax
    0.00 :   55bc94:        movl    %edx, (%rcx)
    0.27 :   55bc96:        movl    %eax, 0x14(%rsp)
    1.58 :   55bc9a:        movl    $0x1, 0x10(%rsp)
    0.00 :   55bca2:        movl    0x10(%rsp), %eax
    0.08 :   55bca6:        movl    0x14(%rsp), %edx
    0.33 :   55bcaa:        addq    $0x38, %rsp
    0.00 :   55bcae:        retq
 Percent |	Source code & Disassembly of perf for cpu/cycles/Pu (708 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         : 0      0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
   25.56 :   55b140:        subq    $0x28, %rsp
   64.05 :   55b144:        movl    %edi, 0xc(%rsp)
    0.12 :   55b148:        movl    %edi, 0x14(%rsp)
    0.00 :   55b14c:        movq    %rsi, 0x18(%rsp)
    0.00 :   55b151:        movl    %esi, %eax
    0.00 :   55b153:        movl    %eax, 0x10(%rsp)
    0.43 :   55b157:        movl    %eax, 0x24(%rsp)
    0.00 :   55b15b:        movl    0x10(%rsp), %esi
    0.52 :   55b15f:        movl    0xc(%rsp), %edi
    0.00 :   55b163:        leaq    0xa40826(%rip), %rdx  # 0xf9b990
    0.00 :   55b16a:        callq   0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
    0.00 :   55b16f:        movl    0x10(%rsp), %ecx
    0.00 :   55b173:        movl    0xc(%rsp), %eax
    0.00 :   55b177:        addl    %ecx, %eax
    0.00 :   55b179:        addq    $0x28, %rsp
    9.32 :   55b17d:        retq
Pipe perf annotate test
Pipe annotate [Failed: missing target data type]
 Percent |	Source code & Disassembly of perf for cpu/cycles/Pu (1824 samples, percent: local period)
---------------------------------------------------------------------------------------------------------
         : 0      0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    0.00 :   55bc40:        subq    $0x38, %rsp
   15.47 :   55bc44:        movq    %rdi, 0x8(%rsp)
    0.00 :   55bc49:        movq    %rdi, 0x18(%rsp)
    3.89 :   55bc4e:        movq    %rdi, %rax
    0.00 :   55bc51:        addq    $0x4, %rax
    0.00 :   55bc55:        movq    %rdi, 0x28(%rsp)
    0.00 :   55bc5a:        movq    %rax, 0x30(%rsp)
    0.00 :   55bc5f:        movl    (%rdi), %eax
    7.62 :   55bc61:        cmpl    0x4(%rdi), %eax
    0.00 :   55bc64:        jb      0x55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    0.00 :   55bc66:        movl    $0x0, 0x10(%rsp)
    0.00 :   55bc6e:        jmp     0x55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    0.00 :   55bc70:        movq    0x8(%rsp), %rax
   28.40 :   55bc75:        movl    (%rax), %edi
    0.00 :   55bc77:        movl    %edi, 0x4(%rsp)
    0.00 :   55bc7b:        movl    %edi, 0x24(%rsp)
    0.00 :   55bc7f:        movl    $0x1, %esi
    0.00 :   55bc84:        callq   0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    0.05 :   55bc89:        movq    0x8(%rsp), %rcx
   40.94 :   55bc8e:        movl    %eax, %edx
    0.00 :   55bc90:        movl    0x4(%rsp), %eax
    0.00 :   55bc94:        movl    %edx, (%rcx)
    0.00 :   55bc96:        movl    %eax, 0x14(%rsp)
    3.62 :   55bc9a:        movl    $0x1, 0x10(%rsp)
    0.00 :   55bca2:        movl    0x10(%rsp), %eax
    0.00 :   55bca6:        movl    0x14(%rsp), %edx
    0.00 :   55bcaa:        addq    $0x38, %rsp
    0.00 :   55bcae:        retq
 Percent |	Source code & Disassembly of perf for cpu/cycles/Pu (871 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         : 0      0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>:
    0.00 :   55b190:        subq    $0x68, %rsp
   21.36 :   55b194:        movl    %edi, %eax
   78.52 :   55b196:        movq    %rdx, (%rsp)
    0.00 :   55b19a:        movl    %eax, 0x48(%rsp)
    0.00 :   55b19e:        movl    %esi, 0x4c(%rsp)
    0.00 :   55b1a2:        leaq    0x2922af(%rip), %rcx  # 0x7ed458
    0.00 :   55b1a9:        movq    %rcx, 0x50(%rsp)
    0.00 :   55b1ae:        movq    $0xb8, 0x58(%rsp)
    0.00 :   55b1b7:        movl    %eax, %edi
    0.00 :   55b1b9:        addl    %esi, %edi
    0.00 :   55b1bb:        cmpl    %eax, %edi
    0.00 :   55b1bd:        jb      0x55b1c4 <core::num::<impl u32>::unchecked_add::precondition_check+0x34>
    0.00 :   55b1bf:        addq    $0x68, %rsp
    0.11 :   55b1c3:        retq
    0.00 :   55b1c4:        movq    (%rsp), %rdx
    0.00 :   55b1c8:        leaq    0x292289(%rip), %rax  # 0x7ed458
    0.00 :   55b1cf:        movq    %rax, 0x38(%rsp)
    0.00 :   55b1d4:        movq    $0xb8, 0x40(%rsp)
    0.00 :   55b1dd:        leaq    0x38(%rsp), %rax
    0.00 :   55b1e2:        movq    %rax, 0x60(%rsp)
    0.00 :   55b1e7:        leaq    0x38(%rsp), %rax
    0.00 :   55b1ec:        movq    %rax, 0x8(%rsp)
    0.00 :   55b1f1:        movq    $0x1, 0x10(%rsp)
    0.00 :   55b1fa:        movq    0x27efdf(%rip), %rcx  # 0x7da1e0
    0.00 :   55b201:        movq    0x27efe0(%rip), %rax  # 0x7da1e8
    0.00 :   55b208:        movq    %rcx, 0x28(%rsp)
    0.00 :   55b20d:        movq    %rax, 0x30(%rsp)
    0.00 :   55b212:        movl    $0x8, %eax
    0.00 :   55b217:        movq    %rax, 0x18(%rsp)
    0.00 :   55b21c:        movq    $0x0, 0x20(%rsp)
    0.00 :   55b225:        leaq    0x8(%rsp), %rdi
    0.00 :   55b22a:        xorl    %esi, %esi
    0.00 :   55b22c:        callq   *0xa4ad96(%rip)  # 0xfa5fc8 <_DYNAMIC+0x1588>
 Percent |	Source code & Disassembly of perf for cpu/cycles/Pu (708 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         : 0      0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
   18.36 :   55b140:        subq    $0x28, %rsp
   78.53 :   55b144:        movl    %edi, 0xc(%rsp)
    0.00 :   55b148:        movl    %edi, 0x14(%rsp)
    0.00 :   55b14c:        movq    %rsi, 0x18(%rsp)
    0.00 :   55b151:        movl    %esi, %eax
    0.00 :   55b153:        movl    %eax, 0x10(%rsp)
    3.11 :   55b157:        movl    %eax, 0x24(%rsp)
    0.00 :   55b15b:        movl    0x10(%rsp), %esi
    0.00 :   55b15f:        movl    0xc(%rsp), %edi
    0.00 :   55b163:        leaq    0xa40826(%rip), %rdx  # 0xf9b990
    0.00 :   55b16a:        callq   0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
    0.00 :   55b16f:        movl    0x10(%rsp), %ecx
    0.00 :   55b173:        movl    0xc(%rsp), %eax
    0.00 :   55b177:        addl    %ecx, %eax
    0.00 :   55b179:        addq    $0x28, %rsp
    0.00 :   55b17d:        retq
---- end(-1) ----
 83: perf data type profiling tests                                  : FAILED!
⬢ [acme@...lbx perf-tools-next]$

Failed as root as well:

root@...ber:/home/acme/git/perf-tools-next# tools/perf/perf test 'data type profiling'
 83: perf data type profiling tests                                  : FAILED!
root@...ber:/home/acme/git/perf-tools-next# tools/perf/perf test -v 'data type profiling'
--- start ---
test child forked, pid 1455516
Basic perf annotate test
Basic annotate [Failed: missing target data type]
 Percent |	Source code & Disassembly of perf for cpu/cycles/P (1359 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         :
         :
         :
         : 3      Disassembly of section .text:
         :
         : 5      000000000055bcb0 <test_rs>:
         : 6      data2: String,
         : 7      data3: u64,
         : 8      }
         :
         : 10     #[no_mangle]
         : 11     pub extern "C" fn test_rs(count: u32) {
    0.07 :   55bcb0: sub    $0x98,%rsp
    0.07 :   55bcb7: mov    %edi,0x2c(%rsp)
    0.07 :   55bcbb: mov    %edi,0x84(%rsp)
         : 15     let mut b =  Buf { data1: 0, data2: String::from("data"), data3: 0};
    0.00 :   55bcc2: lea    0x22b557(%rip),%rsi        # 787220 <_IO_stdin_used+0x20>
    0.00 :   55bcc9: lea    0x60(%rsp),%rdi
    0.22 :   55bcce: mov    $0x4,%edx
    0.07 :   55bcd3: call   55baf0 <<alloc::string::String as core::convert::From<&str>>::from>
    0.07 :   55bcd8: jmp    55bce0 <test_rs+0x30>
         : 21     pub extern "C" fn test_rs(count: u32) {
    0.00 :   55bcda: call   *0xa493b0(%rip)        # fa5090 <_DYNAMIC+0x650>
    0.07 :   55bce0: mov    0x2c(%rsp),%esi
         : 24     let mut b =  Buf { data1: 0, data2: String::from("data"), data3: 0};
    0.29 :   55bce4: movq   $0x0,0x48(%rsp)
    0.15 :   55bced: mov    0x70(%rsp),%rax
    0.00 :   55bcf2: mov    %rax,0x40(%rsp)
    0.07 :   55bcf7: movups 0x60(%rsp),%xmm0
    0.00 :   55bcfc: movaps %xmm0,0x30(%rsp)
    0.07 :   55bd01: movq   $0x0,0x50(%rsp)
    0.00 :   55bd0a: mov    $0x1,%edi
         :
         : 33     for _ in 1..count {
    0.00 :   55bd0f: call   55bae0 <<I as core::iter::traits::collect::IntoIterator>::into_iter>
    0.07 :   55bd14: mov    %edx,0x24(%rsp)
    0.37 :   55bd18: mov    %eax,0x28(%rsp)
    0.00 :   55bd1c: jmp    55bd40 <test_rs+0x90>
    0.00 :   55bd1e: lea    0x30(%rsp),%rdi
         : 39     b.data1 += 1;
         : 40     }
         :
         : 42     b.data3 += b.data1;
         : 43     }
         : 44     }
    0.00 :   55bd23: call   55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd28: jmp    55bd95 <test_rs+0xe5>
    0.00 :   55bd2a: mov    %rax,%rcx
    0.00 :   55bd2d: mov    %edx,%eax
    0.00 :   55bd2f: mov    %rcx,0x88(%rsp)
    0.00 :   55bd37: mov    %eax,0x90(%rsp)
    0.00 :   55bd3e: jmp    55bd1e <test_rs+0x6e>
    0.00 :   55bd40: mov    0x24(%rsp),%eax
    0.00 :   55bd44: mov    0x28(%rsp),%ecx
         : 54     for _ in 1..count {
    0.00 :   55bd48: mov    %ecx,0x7c(%rsp)
    0.07 :   55bd4c: mov    %eax,0x80(%rsp)
    2.08 :   55bd53: lea    0x7c(%rsp),%rdi
    4.92 :   55bd58: call   55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>
   19.10 :   55bd5d: mov    %eax,0x20(%rsp)
   17.78 :   55bd61: jmp    55bd63 <test_rs+0xb3>
    1.55 :   55bd63: mov    0x20(%rsp),%eax
    2.06 :   55bd67: mov    %eax,%eax
    1.99 :   55bd69: test   $0x1,%rax
    0.00 :   55bd6f: je     55bd89 <test_rs+0xd9>
         : 65     b.data1 += 1;
    1.83 :   55bd71: mov    0x48(%rsp),%rcx
    1.84 :   55bd76: mov    %rcx,%rax
    0.00 :   55bd79: add    $0x1,%rax
    1.91 :   55bd7d: mov    %rax,0x18(%rsp)
    2.72 :   55bd82: cmp    %rcx,%rax
    0.00 :   55bd85: jb     55bdcd <test_rs+0x11d>
    2.65 :   55bd87: jmp    55bdb9 <test_rs+0x109>
    0.15 :   55bd89: lea    0x30(%rsp),%rdi
         : 74     }
    0.00 :   55bd8e: call   55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.44 :   55bd93: jmp    55bdb1 <test_rs+0x101>
         : 77     pub extern "C" fn test_rs(count: u32) {
    0.00 :   55bd95: call   *0xa492f5(%rip)        # fa5090 <_DYNAMIC+0x650>
    0.00 :   55bd9b: mov    %rax,%rcx
    0.00 :   55bd9e: mov    %edx,%eax
    0.00 :   55bda0: mov    %rcx,0x88(%rsp)
    0.00 :   55bda8: mov    %eax,0x90(%rsp)
    0.00 :   55bdaf: jmp    55bd95 <test_rs+0xe5>
         : 84     }
    0.07 :   55bdb1: add    $0x98,%rsp
    0.07 :   55bdb8: ret
    1.32 :   55bdb9: mov    0x18(%rsp),%rax
         : 88     b.data1 += 1;
    4.28 :   55bdbe: mov    %rax,0x48(%rsp)
         : 90     if b.data1 == 123 {
    4.50 :   55bdc3: cmpq   $0x7b,0x48(%rsp)
    0.00 :   55bdc9: je     55bde1 <test_rs+0x131>
    1.84 :   55bdcb: jmp    55bdf9 <test_rs+0x149>
         : 94     b.data1 += 1;
    0.00 :   55bdcd: lea    0xa3fc44(%rip),%rdi        # f9ba18 <workloads+0xd8>
    0.00 :   55bdd4: lea    -0x150ffb(%rip),%rax        # 40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55bddb: call   *%rax
    0.00 :   55bddd: jmp    55bddf <test_rs+0x12f>
    0.00 :   55bddf: ud2
         : 100    b.data1 += 1;
    0.00 :   55bde1: mov    0x48(%rsp),%rcx
    0.00 :   55bde6: mov    %rcx,%rax
    0.00 :   55bde9: add    $0x1,%rax
    0.00 :   55bded: mov    %rax,0x10(%rsp)
    0.00 :   55bdf2: cmp    %rcx,%rax
    0.00 :   55bdf5: jb     55be21 <test_rs+0x171>
    0.00 :   55bdf7: jmp    55be15 <test_rs+0x165>
         : 108    b.data3 += b.data1;
    1.40 :   55bdf9: mov    0x48(%rsp),%rdx
    1.25 :   55bdfe: mov    0x50(%rsp),%rcx
    1.17 :   55be03: mov    %rcx,%rax
    0.00 :   55be06: add    %rdx,%rax
    3.30 :   55be09: mov    %rax,0x8(%rsp)
    3.91 :   55be0e: cmp    %rcx,%rax
    0.00 :   55be11: jb     55be42 <test_rs+0x192>
    1.48 :   55be13: jmp    55be33 <test_rs+0x183>
    0.00 :   55be15: mov    0x10(%rsp),%rax
         : 118    b.data1 += 1;
    0.00 :   55be1a: mov    %rax,0x48(%rsp)
         : 120    if b.data1 == 123 {
    0.00 :   55be1f: jmp    55bdf9 <test_rs+0x149>
         : 122    b.data1 += 1;
    0.00 :   55be21: lea    0xa3fc08(%rip),%rdi        # f9ba30 <workloads+0xf0>
    0.00 :   55be28: lea    -0x15104f(%rip),%rax        # 40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be2f: call   *%rax
    0.00 :   55be31: jmp    55bddf <test_rs+0x12f>
    4.27 :   55be33: mov    0x8(%rsp),%rax
         : 128    b.data3 += b.data1;
    4.87 :   55be38: mov    %rax,0x50(%rsp)
         : 130    for _ in 1..count {
    3.47 :   55be3d: jmp    55bd53 <test_rs+0xa3>
         : 132    b.data3 += b.data1;
    0.00 :   55be42: lea    0xa3fbff(%rip),%rdi        # f9ba48 <workloads+0x108>
    0.00 :   55be49: lea    -0x151070(%rip),%rax        # 40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be50: call   *%rax
    0.00 :   55be52: jmp    55bddf <test_rs+0x12f>
         : 137    pub extern "C" fn test_rs(count: u32) {
    0.00 :   55be54: call   *0xa49c2e(%rip)        # fa5a88 <_DYNAMIC+0x1048>
 Percent |	Source code & Disassembly of perf for cpu/cycles/P (1145 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         :
         :
         :
         : 3      Disassembly of section .text:
         :
         : 5      000000000055bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    5.22 :   55bc40: sub    $0x38,%rsp
    1.83 :   55bc44: mov    %rdi,0x8(%rsp)
    2.01 :   55bc49: mov    %rdi,0x18(%rsp)
    1.92 :   55bc4e: mov    %rdi,%rax
    0.00 :   55bc51: add    $0x4,%rax
    4.17 :   55bc55: mov    %rdi,0x28(%rsp)
    2.54 :   55bc5a: mov    %rax,0x30(%rsp)
    6.28 :   55bc5f: mov    (%rdi),%eax
    5.77 :   55bc61: cmp    0x4(%rdi),%eax
    0.00 :   55bc64: jb     55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    0.96 :   55bc66: movl   $0x0,0x10(%rsp)
    1.03 :   55bc6e: jmp    55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    1.57 :   55bc70: mov    0x8(%rsp),%rax
    2.73 :   55bc75: mov    (%rax),%edi
    2.54 :   55bc77: mov    %edi,0x4(%rsp)
    2.01 :   55bc7b: mov    %edi,0x24(%rsp)
    1.75 :   55bc7f: mov    $0x1,%esi
    5.73 :   55bc84: call   55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    3.67 :   55bc89: mov    0x8(%rsp),%rcx
    3.41 :   55bc8e: mov    %eax,%edx
    3.57 :   55bc90: mov    0x4(%rsp),%eax
    3.78 :   55bc94: mov    %edx,(%rcx)
    2.27 :   55bc96: mov    %eax,0x14(%rsp)
    6.12 :   55bc9a: movl   $0x1,0x10(%rsp)
    2.79 :   55bca2: mov    0x10(%rsp),%eax
   12.41 :   55bca6: mov    0x14(%rsp),%edx
   10.04 :   55bcaa: add    $0x38,%rsp
    3.87 :   55bcae: ret
 Percent |	Source code & Disassembly of perf for cpu/cycles/P (636 samples, percent: local period)
-------------------------------------------------------------------------------------------------------
         :
         :
         :
         : 3      Disassembly of section .text:
         :
         : 5      000000000055b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
    8.04 :   55b140: sub    $0x28,%rsp
    4.23 :   55b144: mov    %edi,0xc(%rsp)
    3.30 :   55b148: mov    %edi,0x14(%rsp)
    5.36 :   55b14c: mov    %rsi,0x18(%rsp)
    7.37 :   55b151: mov    %esi,%eax
    4.72 :   55b153: mov    %eax,0x10(%rsp)
    3.32 :   55b157: mov    %eax,0x24(%rsp)
    3.59 :   55b15b: mov    0x10(%rsp),%esi
    2.99 :   55b15f: mov    0xc(%rsp),%edi
    3.92 :   55b163: lea    0xa40826(%rip),%rdx        # f9b990 <workloads+0x50>
    8.49 :   55b16a: call   55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
    4.84 :   55b16f: mov    0x10(%rsp),%ecx
    6.62 :   55b173: mov    0xc(%rsp),%eax
    5.65 :   55b177: add    %ecx,%eax
   21.09 :   55b179: add    $0x28,%rsp
    6.47 :   55b17d: ret
Pipe perf annotate test
Pipe annotate [Failed: missing target data type]
 Percent |	Source code & Disassembly of perf for cpu/cycles/P (1415 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         :
         :
         :
         : 3      Disassembly of section .text:
         :
         : 5      000000000055bcb0 <test_rs>:
         : 6      data2: String,
         : 7      data3: u64,
         : 8      }
         :
         : 10     #[no_mangle]
         : 11     pub extern "C" fn test_rs(count: u32) {
    0.07 :   55bcb0: sub    $0x98,%rsp
    0.00 :   55bcb7: mov    %edi,0x2c(%rsp)
    0.06 :   55bcbb: mov    %edi,0x84(%rsp)
         : 15     let mut b =  Buf { data1: 0, data2: String::from("data"), data3: 0};
    0.14 :   55bcc2: lea    0x22b557(%rip),%rsi        # 787220 <_IO_stdin_used+0x20>
    0.07 :   55bcc9: lea    0x60(%rsp),%rdi
    0.00 :   55bcce: mov    $0x4,%edx
    0.00 :   55bcd3: call   55baf0 <<alloc::string::String as core::convert::From<&str>>::from>
    0.00 :   55bcd8: jmp    55bce0 <test_rs+0x30>
         : 21     pub extern "C" fn test_rs(count: u32) {
    0.00 :   55bcda: call   *0xa493b0(%rip)        # fa5090 <_DYNAMIC+0x650>
    0.07 :   55bce0: mov    0x2c(%rsp),%esi
         : 24     let mut b =  Buf { data1: 0, data2: String::from("data"), data3: 0};
    0.07 :   55bce4: movq   $0x0,0x48(%rsp)
    0.21 :   55bced: mov    0x70(%rsp),%rax
    0.14 :   55bcf2: mov    %rax,0x40(%rsp)
    0.00 :   55bcf7: movups 0x60(%rsp),%xmm0
    0.00 :   55bcfc: movaps %xmm0,0x30(%rsp)
    0.00 :   55bd01: movq   $0x0,0x50(%rsp)
    0.00 :   55bd0a: mov    $0x1,%edi
         :
         : 33     for _ in 1..count {
    0.07 :   55bd0f: call   55bae0 <<I as core::iter::traits::collect::IntoIterator>::into_iter>
    0.42 :   55bd14: mov    %edx,0x24(%rsp)
    0.07 :   55bd18: mov    %eax,0x28(%rsp)
    0.07 :   55bd1c: jmp    55bd40 <test_rs+0x90>
    0.00 :   55bd1e: lea    0x30(%rsp),%rdi
         : 39     b.data1 += 1;
         : 40     }
         :
         : 42     b.data3 += b.data1;
         : 43     }
         : 44     }
    0.00 :   55bd23: call   55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd28: jmp    55bd95 <test_rs+0xe5>
    0.00 :   55bd2a: mov    %rax,%rcx
    0.00 :   55bd2d: mov    %edx,%eax
    0.00 :   55bd2f: mov    %rcx,0x88(%rsp)
    0.00 :   55bd37: mov    %eax,0x90(%rsp)
    0.00 :   55bd3e: jmp    55bd1e <test_rs+0x6e>
    0.00 :   55bd40: mov    0x24(%rsp),%eax
    0.00 :   55bd44: mov    0x28(%rsp),%ecx
         : 54     for _ in 1..count {
    0.00 :   55bd48: mov    %ecx,0x7c(%rsp)
    0.00 :   55bd4c: mov    %eax,0x80(%rsp)
    3.18 :   55bd53: lea    0x7c(%rsp),%rdi
    3.46 :   55bd58: call   55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>
   18.28 :   55bd5d: mov    %eax,0x20(%rsp)
   18.43 :   55bd61: jmp    55bd63 <test_rs+0xb3>
    1.84 :   55bd63: mov    0x20(%rsp),%eax
    1.34 :   55bd67: mov    %eax,%eax
    1.55 :   55bd69: test   $0x1,%rax
    0.00 :   55bd6f: je     55bd89 <test_rs+0xd9>
         : 65     b.data1 += 1;
    2.62 :   55bd71: mov    0x48(%rsp),%rcx
    2.13 :   55bd76: mov    %rcx,%rax
    0.00 :   55bd79: add    $0x1,%rax
    1.64 :   55bd7d: mov    %rax,0x18(%rsp)
    3.11 :   55bd82: cmp    %rcx,%rax
    0.00 :   55bd85: jb     55bdcd <test_rs+0x11d>
    2.26 :   55bd87: jmp    55bdb9 <test_rs+0x109>
    0.00 :   55bd89: lea    0x30(%rsp),%rdi
         : 74     }
    0.21 :   55bd8e: call   55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.28 :   55bd93: jmp    55bdb1 <test_rs+0x101>
         : 77     pub extern "C" fn test_rs(count: u32) {
    0.00 :   55bd95: call   *0xa492f5(%rip)        # fa5090 <_DYNAMIC+0x650>
    0.00 :   55bd9b: mov    %rax,%rcx
    0.00 :   55bd9e: mov    %edx,%eax
    0.00 :   55bda0: mov    %rcx,0x88(%rsp)
    0.00 :   55bda8: mov    %eax,0x90(%rsp)
    0.00 :   55bdaf: jmp    55bd95 <test_rs+0xe5>
         : 84     }
    0.00 :   55bdb1: add    $0x98,%rsp
    0.00 :   55bdb8: ret
    1.90 :   55bdb9: mov    0x18(%rsp),%rax
         : 88     b.data1 += 1;
    4.70 :   55bdbe: mov    %rax,0x48(%rsp)
         : 90     if b.data1 == 123 {
    4.95 :   55bdc3: cmpq   $0x7b,0x48(%rsp)
    0.00 :   55bdc9: je     55bde1 <test_rs+0x131>
    1.63 :   55bdcb: jmp    55bdf9 <test_rs+0x149>
         : 94     b.data1 += 1;
    0.00 :   55bdcd: lea    0xa3fc44(%rip),%rdi        # f9ba18 <workloads+0xd8>
    0.00 :   55bdd4: lea    -0x150ffb(%rip),%rax        # 40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55bddb: call   *%rax
    0.00 :   55bddd: jmp    55bddf <test_rs+0x12f>
    0.00 :   55bddf: ud2
         : 100    b.data1 += 1;
    0.00 :   55bde1: mov    0x48(%rsp),%rcx
    0.00 :   55bde6: mov    %rcx,%rax
    0.00 :   55bde9: add    $0x1,%rax
    0.00 :   55bded: mov    %rax,0x10(%rsp)
    0.00 :   55bdf2: cmp    %rcx,%rax
    0.00 :   55bdf5: jb     55be21 <test_rs+0x171>
    0.00 :   55bdf7: jmp    55be15 <test_rs+0x165>
         : 108    b.data3 += b.data1;
    1.20 :   55bdf9: mov    0x48(%rsp),%rdx
    1.63 :   55bdfe: mov    0x50(%rsp),%rcx
    1.36 :   55be03: mov    %rcx,%rax
    0.00 :   55be06: add    %rdx,%rax
    3.11 :   55be09: mov    %rax,0x8(%rsp)
    2.89 :   55be0e: cmp    %rcx,%rax
    0.00 :   55be11: jb     55be42 <test_rs+0x192>
    1.90 :   55be13: jmp    55be33 <test_rs+0x183>
    0.00 :   55be15: mov    0x10(%rsp),%rax
         : 118    b.data1 += 1;
    0.00 :   55be1a: mov    %rax,0x48(%rsp)
         : 120    if b.data1 == 123 {
    0.00 :   55be1f: jmp    55bdf9 <test_rs+0x149>
         : 122    b.data1 += 1;
    0.00 :   55be21: lea    0xa3fc08(%rip),%rdi        # f9ba30 <workloads+0xf0>
    0.00 :   55be28: lea    -0x15104f(%rip),%rax        # 40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be2f: call   *%rax
    0.00 :   55be31: jmp    55bddf <test_rs+0x12f>
    4.86 :   55be33: mov    0x8(%rsp),%rax
         : 128    b.data3 += b.data1;
    4.60 :   55be38: mov    %rax,0x50(%rsp)
         : 130    for _ in 1..count {
    3.46 :   55be3d: jmp    55bd53 <test_rs+0xa3>
         : 132    b.data3 += b.data1;
    0.00 :   55be42: lea    0xa3fbff(%rip),%rdi        # f9ba48 <workloads+0x108>
    0.00 :   55be49: lea    -0x151070(%rip),%rax        # 40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be50: call   *%rax
    0.00 :   55be52: jmp    55bddf <test_rs+0x12f>
         : 137    pub extern "C" fn test_rs(count: u32) {
    0.00 :   55be54: call   *0xa49c2e(%rip)        # fa5a88 <_DYNAMIC+0x1048>
 Percent |	Source code & Disassembly of perf for cpu/cycles/P (1142 samples, percent: local period)
--------------------------------------------------------------------------------------------------------
         :
         :
         :
         : 3      Disassembly of section .text:
         :
         : 5      000000000055bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    4.12 :   55bc40: sub    $0x38,%rsp
    2.04 :   55bc44: mov    %rdi,0x8(%rsp)
    2.11 :   55bc49: mov    %rdi,0x18(%rsp)
    2.80 :   55bc4e: mov    %rdi,%rax
    0.00 :   55bc51: add    $0x4,%rax
    3.95 :   55bc55: mov    %rdi,0x28(%rsp)
    2.28 :   55bc5a: mov    %rax,0x30(%rsp)
    6.73 :   55bc5f: mov    (%rdi),%eax
    5.17 :   55bc61: cmp    0x4(%rdi),%eax
    0.00 :   55bc64: jb     55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    1.14 :   55bc66: movl   $0x0,0x10(%rsp)
    0.70 :   55bc6e: jmp    55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    1.67 :   55bc70: mov    0x8(%rsp),%rax
    2.20 :   55bc75: mov    (%rax),%edi
    1.75 :   55bc77: mov    %edi,0x4(%rsp)
    2.63 :   55bc7b: mov    %edi,0x24(%rsp)
    2.18 :   55bc7f: mov    $0x1,%esi
    5.15 :   55bc84: call   55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    2.71 :   55bc89: mov    0x8(%rsp),%rcx
    3.43 :   55bc8e: mov    %eax,%edx
    2.89 :   55bc90: mov    0x4(%rsp),%eax
    2.56 :   55bc94: mov    %edx,(%rcx)
    2.44 :   55bc96: mov    %eax,0x14(%rsp)
    6.22 :   55bc9a: movl   $0x1,0x10(%rsp)
    3.06 :   55bca2: mov    0x10(%rsp),%eax
   14.55 :   55bca6: mov    0x14(%rsp),%edx
   11.64 :   55bcaa: add    $0x38,%rsp
    3.87 :   55bcae: ret
 Percent |	Source code & Disassembly of perf for cpu/cycles/P (590 samples, percent: local period)
-------------------------------------------------------------------------------------------------------
         :
         :
         :
         : 3      Disassembly of section .text:
         :
         : 5      000000000055b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
    8.72 :   55b140: sub    $0x28,%rsp
    2.54 :   55b144: mov    %edi,0xc(%rsp)
    3.90 :   55b148: mov    %edi,0x14(%rsp)
    4.61 :   55b14c: mov    %rsi,0x18(%rsp)
    6.76 :   55b151: mov    %esi,%eax
    3.74 :   55b153: mov    %eax,0x10(%rsp)
    3.22 :   55b157: mov    %eax,0x24(%rsp)
    4.10 :   55b15b: mov    0x10(%rsp),%esi
    3.37 :   55b15f: mov    0xc(%rsp),%edi
    4.57 :   55b163: lea    0xa40826(%rip),%rdx        # f9b990 <workloads+0x50>
    8.30 :   55b16a: call   55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
    6.43 :   55b16f: mov    0x10(%rsp),%ecx
    7.13 :   55b173: mov    0xc(%rsp),%eax
    3.85 :   55b177: add    %ecx,%eax
   21.24 :   55b179: add    $0x28,%rsp
    7.51 :   55b17d: ret
---- end(-1) ----
 83: perf data type profiling tests                                  : FAILED!
root@...ber:/home/acme/git/perf-tools-next#


Ok, this is on a:

root@...e:~# grep "model name" -m1 /proc/cpuinfo
model name	: AMD Ryzen 9 5950X 16-Core Processor
root@...e:~#

Now trying on a:

acme@x1:~/git/perf-tools-next$ grep -m1 "model name" /proc/cpuinfo 
model name	: 13th Gen Intel(R) Core(TM) i7-1365U
acme@x1:~/git/perf-tools-next$ 

⬢ [acme@...lbx perf-tools-next]$ tools/perf/perf test "data type profiling"
 83: perf data type profiling tests                                  : FAILED!
⬢ [acme@...lbx perf-tools-next]$ tools/perf/perf test -v "data type profiling"
Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
--- start ---
test child forked, pid 615260
Basic perf annotate test
Basic annotate [Failed: missing target data type]
 Percent |	Source code & Disassembly of perf for cpu_atom/cycles/Pu (108 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55bcb0 <test_rs>:
    0.00 :   55bcb0:        subq    $0x98, %rsp
    0.00 :   55bcb7:        movl    %edi, 0x2c(%rsp)
    0.00 :   55bcbb:        movl    %edi, 0x84(%rsp)
    0.00 :   55bcc2:        leaq    0x22b557(%rip), %rsi  # 0x787220
    0.00 :   55bcc9:        leaq    0x60(%rsp), %rdi
    0.00 :   55bcce:        movl    $0x4, %edx
    0.00 :   55bcd3:        callq   0x55baf0 <<alloc::string::String as core::convert::From<&str>>::from>
    0.00 :   55bcd8:        jmp     0x55bce0 <test_rs+0x30>
    0.00 :   55bcda:        callq   *0xa493b0(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bce0:        movl    0x2c(%rsp), %esi
    0.00 :   55bce4:        movq    $0x0, 0x48(%rsp)
    0.00 :   55bced:        movq    0x70(%rsp), %rax
    0.00 :   55bcf2:        movq    %rax, 0x40(%rsp)
    1.92 :   55bcf7:        movups  0x60(%rsp), %xmm0
    0.00 :   55bcfc:        movaps  %xmm0, 0x30(%rsp)
    0.00 :   55bd01:        movq    $0x0, 0x50(%rsp)
    0.00 :   55bd0a:        movl    $0x1, %edi
    0.00 :   55bd0f:        callq   0x55bae0 <<I as core::iter::traits::collect::IntoIterator>::into_iter>
    0.00 :   55bd14:        movl    %edx, 0x24(%rsp)
    0.00 :   55bd18:        movl    %eax, 0x28(%rsp)
    0.00 :   55bd1c:        jmp     0x55bd40 <test_rs+0x90>
    0.00 :   55bd1e:        leaq    0x30(%rsp), %rdi
    0.00 :   55bd23:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd28:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bd2a:        movq    %rax, %rcx
    0.00 :   55bd2d:        movl    %edx, %eax
    0.00 :   55bd2f:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bd37:        movl    %eax, 0x90(%rsp)
    0.00 :   55bd3e:        jmp     0x55bd1e <test_rs+0x6e>
    0.96 :   55bd40:        movl    0x24(%rsp), %eax
    0.00 :   55bd44:        movl    0x28(%rsp), %ecx
    0.00 :   55bd48:        movl    %ecx, 0x7c(%rsp)
    0.00 :   55bd4c:        movl    %eax, 0x80(%rsp)
    1.92 :   55bd53:        leaq    0x7c(%rsp), %rdi
    0.96 :   55bd58:        callq   0x55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>
    7.56 :   55bd5d:        movl    %eax, 0x20(%rsp)
    4.10 :   55bd61:        jmp     0x55bd63 <test_rs+0xb3>
    3.83 :   55bd63:        movl    0x20(%rsp), %eax
    2.88 :   55bd67:        movl    %eax, %eax
    1.92 :   55bd69:        testq   $0x1, %rax
    1.92 :   55bd6f:        je      0x55bd89 <test_rs+0xd9>
    2.88 :   55bd71:        movq    0x48(%rsp), %rcx
    5.71 :   55bd76:        movq    %rcx, %rax
    3.84 :   55bd79:        addq    $0x1, %rax
    1.93 :   55bd7d:        movq    %rax, 0x18(%rsp)
    3.66 :   55bd82:        cmpq    %rcx, %rax
    1.48 :   55bd85:        jb      0x55bdcd <test_rs+0x11d>
    0.96 :   55bd87:        jmp     0x55bdb9 <test_rs+0x109>
    0.00 :   55bd89:        leaq    0x30(%rsp), %rdi
    0.00 :   55bd8e:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd93:        jmp     0x55bdb1 <test_rs+0x101>
    0.00 :   55bd95:        callq   *0xa492f5(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bd9b:        movq    %rax, %rcx
    0.00 :   55bd9e:        movl    %edx, %eax
    0.00 :   55bda0:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bda8:        movl    %eax, 0x90(%rsp)
    0.00 :   55bdaf:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bdb1:        addq    $0x98, %rsp
    0.00 :   55bdb8:        retq
    3.81 :   55bdb9:        movq    0x18(%rsp), %rax
    1.91 :   55bdbe:        movq    %rax, 0x48(%rsp)
    3.44 :   55bdc3:        cmpq    $0x7b, 0x48(%rsp)
    1.92 :   55bdc9:        je      0x55bde1 <test_rs+0x131>
    3.84 :   55bdcb:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55bdcd:        leaq    0xa3fc44(%rip), %rdi  # 0xf9ba18
    0.00 :   55bdd4:        leaq    -0x150ffb(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55bddb:        callq   *%rax
    0.00 :   55bddd:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55bddf:        ud2
    0.00 :   55bde1:        movq    0x48(%rsp), %rcx
    0.00 :   55bde6:        movq    %rcx, %rax
    0.00 :   55bde9:        addq    $0x1, %rax
    0.00 :   55bded:        movq    %rax, 0x10(%rsp)
    0.00 :   55bdf2:        cmpq    %rcx, %rax
    0.00 :   55bdf5:        jb      0x55be21 <test_rs+0x171>
    0.00 :   55bdf7:        jmp     0x55be15 <test_rs+0x165>
    1.92 :   55bdf9:        movq    0x48(%rsp), %rdx
    2.88 :   55bdfe:        movq    0x50(%rsp), %rcx
    5.76 :   55be03:        movq    %rcx, %rax
    0.96 :   55be06:        addq    %rdx, %rax
    4.80 :   55be09:        movq    %rax, 0x8(%rsp)
    1.92 :   55be0e:        cmpq    %rcx, %rax
    3.20 :   55be11:        jb      0x55be42 <test_rs+0x192>
    3.84 :   55be13:        jmp     0x55be33 <test_rs+0x183>
    0.00 :   55be15:        movq    0x10(%rsp), %rax
    0.00 :   55be1a:        movq    %rax, 0x48(%rsp)
    0.00 :   55be1f:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55be21:        leaq    0xa3fc08(%rip), %rdi  # 0xf9ba30
    0.00 :   55be28:        leaq    -0x15104f(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be2f:        callq   *%rax
    0.00 :   55be31:        jmp     0x55bddf <test_rs+0x12f>
    2.35 :   55be33:        movq    0x8(%rsp), %rax
    9.00 :   55be38:        movq    %rax, 0x50(%rsp)
    0.00 :   55be3d:        jmp     0x55bd53 <test_rs+0xa3>
    0.00 :   55be42:        leaq    0xa3fbff(%rip), %rdi  # 0xf9ba48
    0.00 :   55be49:        leaq    -0x151070(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be50:        callq   *%rax
    0.00 :   55be52:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be54:        callq   *0xa49c2e(%rip)  # 0xfa5a88 <_DYNAMIC+0x1048>
 Percent |	Source code & Disassembly of perf for cpu_atom/cycles/Pu (99 samples, percent: local period)
------------------------------------------------------------------------------------------------------------
         : 0      0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    3.13 :   55bc40:        subq    $0x38, %rsp
    6.23 :   55bc44:        movq    %rdi, 0x8(%rsp)
    4.63 :   55bc49:        movq    %rdi, 0x18(%rsp)
    5.15 :   55bc4e:        movq    %rdi, %rax
    5.22 :   55bc51:        addq    $0x4, %rax
    1.04 :   55bc55:        movq    %rdi, 0x28(%rsp)
    3.13 :   55bc5a:        movq    %rax, 0x30(%rsp)
    2.09 :   55bc5f:        movl    (%rdi), %eax
    1.04 :   55bc61:        cmpl    0x4(%rdi), %eax
    1.04 :   55bc64:        jb      0x55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    3.13 :   55bc66:        movl    $0x0, 0x10(%rsp)
    0.00 :   55bc6e:        jmp     0x55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    4.01 :   55bc70:        movq    0x8(%rsp), %rax
    5.22 :   55bc75:        movl    (%rax), %edi
    4.98 :   55bc77:        movl    %edi, 0x4(%rsp)
    3.06 :   55bc7b:        movl    %edi, 0x24(%rsp)
    4.18 :   55bc7f:        movl    $0x1, %esi
    2.08 :   55bc84:        callq   0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    4.55 :   55bc89:        movq    0x8(%rsp), %rcx
    7.23 :   55bc8e:        movl    %eax, %edx
    3.61 :   55bc90:        movl    0x4(%rsp), %eax
    1.49 :   55bc94:        movl    %edx, (%rcx)
    4.14 :   55bc96:        movl    %eax, 0x14(%rsp)
    6.22 :   55bc9a:        movl    $0x1, 0x10(%rsp)
    4.04 :   55bca2:        movl    0x10(%rsp), %eax
    4.09 :   55bca6:        movl    0x14(%rsp), %edx
    3.13 :   55bcaa:        addq    $0x38, %rsp
    2.09 :   55bcae:        retq
 Percent |	Source code & Disassembly of perf for cpu_atom/cycles/Pu (69 samples, percent: local period)
------------------------------------------------------------------------------------------------------------
         : 0      0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
   12.97 :   55b140:        subq    $0x28, %rsp
    3.00 :   55b144:        movl    %edi, 0xc(%rsp)
    3.00 :   55b148:        movl    %edi, 0x14(%rsp)
   10.49 :   55b14c:        movq    %rsi, 0x18(%rsp)
    8.98 :   55b151:        movl    %esi, %eax
    7.11 :   55b153:        movl    %eax, 0x10(%rsp)
    5.99 :   55b157:        movl    %eax, 0x24(%rsp)
    8.67 :   55b15b:        movl    0x10(%rsp), %esi
    0.00 :   55b15f:        movl    0xc(%rsp), %edi
    1.50 :   55b163:        leaq    0xa40826(%rip), %rdx  # 0xf9b990
    4.50 :   55b16a:        callq   0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
   21.79 :   55b16f:        movl    0x10(%rsp), %ecx
    4.49 :   55b173:        movl    0xc(%rsp), %eax
    3.00 :   55b177:        addl    %ecx, %eax
    1.50 :   55b179:        addq    $0x28, %rsp
    3.00 :   55b17d:        retq
 Percent |	Source code & Disassembly of perf for cpu_atom/cycles/Pu (65 samples, percent: local period)
------------------------------------------------------------------------------------------------------------
         : 0      0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>:
   12.87 :   55b190:        subq    $0x68, %rsp
    8.03 :   55b194:        movl    %edi, %eax
   17.01 :   55b196:        movq    %rdx, (%rsp)
    7.53 :   55b19a:        movl    %eax, 0x48(%rsp)
    2.92 :   55b19e:        movl    %esi, 0x4c(%rsp)
    6.44 :   55b1a2:        leaq    0x2922af(%rip), %rcx  # 0x7ed458
    1.60 :   55b1a9:        movq    %rcx, 0x50(%rsp)
    3.22 :   55b1ae:        movq    $0xb8, 0x58(%rsp)
    3.67 :   55b1b7:        movl    %eax, %edi
    9.65 :   55b1b9:        addl    %esi, %edi
    6.43 :   55b1bb:        cmpl    %eax, %edi
    9.63 :   55b1bd:        jb      0x55b1c4 <core::num::<impl u32>::unchecked_add::precondition_check+0x34>
    4.56 :   55b1bf:        addq    $0x68, %rsp
    6.44 :   55b1c3:        retq
    0.00 :   55b1c4:        movq    (%rsp), %rdx
    0.00 :   55b1c8:        leaq    0x292289(%rip), %rax  # 0x7ed458
    0.00 :   55b1cf:        movq    %rax, 0x38(%rsp)
    0.00 :   55b1d4:        movq    $0xb8, 0x40(%rsp)
    0.00 :   55b1dd:        leaq    0x38(%rsp), %rax
    0.00 :   55b1e2:        movq    %rax, 0x60(%rsp)
    0.00 :   55b1e7:        leaq    0x38(%rsp), %rax
    0.00 :   55b1ec:        movq    %rax, 0x8(%rsp)
    0.00 :   55b1f1:        movq    $0x1, 0x10(%rsp)
    0.00 :   55b1fa:        movq    0x27efdf(%rip), %rcx  # 0x7da1e0
    0.00 :   55b201:        movq    0x27efe0(%rip), %rax  # 0x7da1e8
    0.00 :   55b208:        movq    %rcx, 0x28(%rsp)
    0.00 :   55b20d:        movq    %rax, 0x30(%rsp)
    0.00 :   55b212:        movl    $0x8, %eax
    0.00 :   55b217:        movq    %rax, 0x18(%rsp)
    0.00 :   55b21c:        movq    $0x0, 0x20(%rsp)
    0.00 :   55b225:        leaq    0x8(%rsp), %rdi
    0.00 :   55b22a:        xorl    %esi, %esi
    0.00 :   55b22c:        callq   *0xa4ad96(%rip)  # 0xfa5fc8 <_DYNAMIC+0x1588>
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (1046 samples, percent: local period)
--------------------------------------------------------------------------------------------------------------
         : 0      0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    0.00 :   55bc40:        subq    $0x38, %rsp
    0.00 :   55bc44:        movq    %rdi, 0x8(%rsp)
    0.00 :   55bc49:        movq    %rdi, 0x18(%rsp)
   16.36 :   55bc4e:        movq    %rdi, %rax
    0.00 :   55bc51:        addq    $0x4, %rax
    0.00 :   55bc55:        movq    %rdi, 0x28(%rsp)
    0.00 :   55bc5a:        movq    %rax, 0x30(%rsp)
    7.25 :   55bc5f:        movl    (%rdi), %eax
    0.00 :   55bc61:        cmpl    0x4(%rdi), %eax
   15.21 :   55bc64:        jb      0x55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    0.00 :   55bc66:        movl    $0x0, 0x10(%rsp)
    0.10 :   55bc6e:        jmp     0x55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    0.00 :   55bc70:        movq    0x8(%rsp), %rax
    0.10 :   55bc75:        movl    (%rax), %edi
    0.00 :   55bc77:        movl    %edi, 0x4(%rsp)
   14.93 :   55bc7b:        movl    %edi, 0x24(%rsp)
    0.00 :   55bc7f:        movl    $0x1, %esi
    1.05 :   55bc84:        callq   0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    0.00 :   55bc89:        movq    0x8(%rsp), %rcx
    0.00 :   55bc8e:        movl    %eax, %edx
    0.00 :   55bc90:        movl    0x4(%rsp), %eax
   15.51 :   55bc94:        movl    %edx, (%rcx)
    0.00 :   55bc96:        movl    %eax, 0x14(%rsp)
    0.00 :   55bc9a:        movl    $0x1, 0x10(%rsp)
    0.00 :   55bca2:        movl    0x10(%rsp), %eax
   14.21 :   55bca6:        movl    0x14(%rsp), %edx
    0.00 :   55bcaa:        addq    $0x38, %rsp
   15.28 :   55bcae:        retq
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (954 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55bcb0 <test_rs>:
    0.00 :   55bcb0:        subq    $0x98, %rsp
    0.00 :   55bcb7:        movl    %edi, 0x2c(%rsp)
    0.00 :   55bcbb:        movl    %edi, 0x84(%rsp)
    0.10 :   55bcc2:        leaq    0x22b557(%rip), %rsi  # 0x787220
    0.00 :   55bcc9:        leaq    0x60(%rsp), %rdi
    0.00 :   55bcce:        movl    $0x4, %edx
    0.00 :   55bcd3:        callq   0x55baf0 <<alloc::string::String as core::convert::From<&str>>::from>
    0.10 :   55bcd8:        jmp     0x55bce0 <test_rs+0x30>
    0.00 :   55bcda:        callq   *0xa493b0(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bce0:        movl    0x2c(%rsp), %esi
    0.00 :   55bce4:        movq    $0x0, 0x48(%rsp)
    0.11 :   55bced:        movq    0x70(%rsp), %rax
    0.21 :   55bcf2:        movq    %rax, 0x40(%rsp)
    2.20 :   55bcf7:        movups  0x60(%rsp), %xmm0
    0.73 :   55bcfc:        movaps  %xmm0, 0x30(%rsp)
    0.00 :   55bd01:        movq    $0x0, 0x50(%rsp)
    0.00 :   55bd0a:        movl    $0x1, %edi
    0.00 :   55bd0f:        callq   0x55bae0 <<I as core::iter::traits::collect::IntoIterator>::into_iter>
    0.00 :   55bd14:        movl    %edx, 0x24(%rsp)
    0.00 :   55bd18:        movl    %eax, 0x28(%rsp)
    0.10 :   55bd1c:        jmp     0x55bd40 <test_rs+0x90>
    0.00 :   55bd1e:        leaq    0x30(%rsp), %rdi
    0.00 :   55bd23:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd28:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bd2a:        movq    %rax, %rcx
    0.00 :   55bd2d:        movl    %edx, %eax
    0.00 :   55bd2f:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bd37:        movl    %eax, 0x90(%rsp)
    0.00 :   55bd3e:        jmp     0x55bd1e <test_rs+0x6e>
    0.00 :   55bd40:        movl    0x24(%rsp), %eax
    0.00 :   55bd44:        movl    0x28(%rsp), %ecx
    0.00 :   55bd48:        movl    %ecx, 0x7c(%rsp)
    0.21 :   55bd4c:        movl    %eax, 0x80(%rsp)
    0.00 :   55bd53:        leaq    0x7c(%rsp), %rdi
   11.96 :   55bd58:        callq   0x55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>
    0.00 :   55bd5d:        movl    %eax, 0x20(%rsp)
    1.36 :   55bd61:        jmp     0x55bd63 <test_rs+0xb3>
    0.00 :   55bd63:        movl    0x20(%rsp), %eax
    0.00 :   55bd67:        movl    %eax, %eax
    0.00 :   55bd69:        testq   $0x1, %rax
    0.10 :   55bd6f:        je      0x55bd89 <test_rs+0xd9>
   16.76 :   55bd71:        movq    0x48(%rsp), %rcx
    0.00 :   55bd76:        movq    %rcx, %rax
    0.00 :   55bd79:        addq    $0x1, %rax
    0.00 :   55bd7d:        movq    %rax, 0x18(%rsp)
    2.20 :   55bd82:        cmpq    %rcx, %rax
    0.00 :   55bd85:        jb      0x55bdcd <test_rs+0x11d>
    3.04 :   55bd87:        jmp     0x55bdb9 <test_rs+0x109>
    0.00 :   55bd89:        leaq    0x30(%rsp), %rdi
    0.00 :   55bd8e:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd93:        jmp     0x55bdb1 <test_rs+0x101>
    0.00 :   55bd95:        callq   *0xa492f5(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bd9b:        movq    %rax, %rcx
    0.00 :   55bd9e:        movl    %edx, %eax
    0.00 :   55bda0:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bda8:        movl    %eax, 0x90(%rsp)
    0.00 :   55bdaf:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bdb1:        addq    $0x98, %rsp
    0.21 :   55bdb8:        retq
    0.10 :   55bdb9:        movq    0x18(%rsp), %rax
    0.00 :   55bdbe:        movq    %rax, 0x48(%rsp)
    0.00 :   55bdc3:        cmpq    $0x7b, 0x48(%rsp)
   17.41 :   55bdc9:        je      0x55bde1 <test_rs+0x131>
    6.19 :   55bdcb:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55bdcd:        leaq    0xa3fc44(%rip), %rdi  # 0xf9ba18
    0.00 :   55bdd4:        leaq    -0x150ffb(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55bddb:        callq   *%rax
    0.00 :   55bddd:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55bddf:        ud2
    0.00 :   55bde1:        movq    0x48(%rsp), %rcx
    0.00 :   55bde6:        movq    %rcx, %rax
    0.00 :   55bde9:        addq    $0x1, %rax
    0.00 :   55bded:        movq    %rax, 0x10(%rsp)
    0.00 :   55bdf2:        cmpq    %rcx, %rax
    0.00 :   55bdf5:        jb      0x55be21 <test_rs+0x171>
    0.00 :   55bdf7:        jmp     0x55be15 <test_rs+0x165>
    0.00 :   55bdf9:        movq    0x48(%rsp), %rdx
    0.00 :   55bdfe:        movq    0x50(%rsp), %rcx
    0.00 :   55be03:        movq    %rcx, %rax
   16.66 :   55be06:        addq    %rdx, %rax
    0.00 :   55be09:        movq    %rax, 0x8(%rsp)
    0.00 :   55be0e:        cmpq    %rcx, %rax
    0.00 :   55be11:        jb      0x55be42 <test_rs+0x192>
   19.06 :   55be13:        jmp     0x55be33 <test_rs+0x183>
    0.00 :   55be15:        movq    0x10(%rsp), %rax
    0.00 :   55be1a:        movq    %rax, 0x48(%rsp)
    0.00 :   55be1f:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55be21:        leaq    0xa3fc08(%rip), %rdi  # 0xf9ba30
    0.00 :   55be28:        leaq    -0x15104f(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be2f:        callq   *%rax
    0.00 :   55be31:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be33:        movq    0x8(%rsp), %rax
    0.00 :   55be38:        movq    %rax, 0x50(%rsp)
    1.15 :   55be3d:        jmp     0x55bd53 <test_rs+0xa3>
    0.00 :   55be42:        leaq    0xa3fbff(%rip), %rdi  # 0xf9ba48
    0.00 :   55be49:        leaq    -0x151070(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be50:        callq   *%rax
    0.00 :   55be52:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be54:        callq   *0xa49c2e(%rip)  # 0xfa5a88 <_DYNAMIC+0x1048>
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (522 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>:
    0.00 :   55b190:        subq    $0x68, %rsp
    0.00 :   55b194:        movl    %edi, %eax
    0.00 :   55b196:        movq    %rdx, (%rsp)
   33.53 :   55b19a:        movl    %eax, 0x48(%rsp)
    0.00 :   55b19e:        movl    %esi, 0x4c(%rsp)
    0.00 :   55b1a2:        leaq    0x2922af(%rip), %rcx  # 0x7ed458
    0.00 :   55b1a9:        movq    %rcx, 0x50(%rsp)
   33.92 :   55b1ae:        movq    $0xb8, 0x58(%rsp)
    0.00 :   55b1b7:        movl    %eax, %edi
    0.00 :   55b1b9:        addl    %esi, %edi
    0.00 :   55b1bb:        cmpl    %eax, %edi
    0.00 :   55b1bd:        jb      0x55b1c4 <core::num::<impl u32>::unchecked_add::precondition_check+0x34>
    3.43 :   55b1bf:        addq    $0x68, %rsp
   29.12 :   55b1c3:        retq
    0.00 :   55b1c4:        movq    (%rsp), %rdx
    0.00 :   55b1c8:        leaq    0x292289(%rip), %rax  # 0x7ed458
    0.00 :   55b1cf:        movq    %rax, 0x38(%rsp)
    0.00 :   55b1d4:        movq    $0xb8, 0x40(%rsp)
    0.00 :   55b1dd:        leaq    0x38(%rsp), %rax
    0.00 :   55b1e2:        movq    %rax, 0x60(%rsp)
    0.00 :   55b1e7:        leaq    0x38(%rsp), %rax
    0.00 :   55b1ec:        movq    %rax, 0x8(%rsp)
    0.00 :   55b1f1:        movq    $0x1, 0x10(%rsp)
    0.00 :   55b1fa:        movq    0x27efdf(%rip), %rcx  # 0x7da1e0
    0.00 :   55b201:        movq    0x27efe0(%rip), %rax  # 0x7da1e8
    0.00 :   55b208:        movq    %rcx, 0x28(%rsp)
    0.00 :   55b20d:        movq    %rax, 0x30(%rsp)
    0.00 :   55b212:        movl    $0x8, %eax
    0.00 :   55b217:        movq    %rax, 0x18(%rsp)
    0.00 :   55b21c:        movq    $0x0, 0x20(%rsp)
    0.00 :   55b225:        leaq    0x8(%rsp), %rdi
    0.00 :   55b22a:        xorl    %esi, %esi
    0.00 :   55b22c:        callq   *0xa4ad96(%rip)  # 0xfa5fc8 <_DYNAMIC+0x1588>
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (471 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
    0.00 :   55b140:        subq    $0x28, %rsp
    0.00 :   55b144:        movl    %edi, 0xc(%rsp)
    0.00 :   55b148:        movl    %edi, 0x14(%rsp)
   24.00 :   55b14c:        movq    %rsi, 0x18(%rsp)
    0.00 :   55b151:        movl    %esi, %eax
    0.00 :   55b153:        movl    %eax, 0x10(%rsp)
    0.00 :   55b157:        movl    %eax, 0x24(%rsp)
   13.42 :   55b15b:        movl    0x10(%rsp), %esi
    0.00 :   55b15f:        movl    0xc(%rsp), %edi
    0.00 :   55b163:        leaq    0xa40826(%rip), %rdx  # 0xf9b990
    2.33 :   55b16a:        callq   0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
    0.00 :   55b16f:        movl    0x10(%rsp), %ecx
    0.00 :   55b173:        movl    0xc(%rsp), %eax
    0.00 :   55b177:        addl    %ecx, %eax
   30.61 :   55b179:        addq    $0x28, %rsp
   29.63 :   55b17d:        retq
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (405 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>:
    0.00 :   55b820:        pushq   %rax
    0.00 :   55b821:        movq    %rdi, (%rsp)
   58.32 :   55b825:        callq   0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>
    0.00 :   55b82a:        popq    %rcx
   41.68 :   55b82b:        retq
Pipe perf annotate test
Pipe annotate [Failed: missing target data type]
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (1159 samples, percent: local period)
--------------------------------------------------------------------------------------------------------------
         : 0      0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>:
    0.00 :   55bc40:        subq    $0x38, %rsp
    0.00 :   55bc44:        movq    %rdi, 0x8(%rsp)
    0.00 :   55bc49:        movq    %rdi, 0x18(%rsp)
   13.73 :   55bc4e:        movq    %rdi, %rax
    0.00 :   55bc51:        addq    $0x4, %rax
    0.00 :   55bc55:        movq    %rdi, 0x28(%rsp)
    0.00 :   55bc5a:        movq    %rax, 0x30(%rsp)
    8.03 :   55bc5f:        movl    (%rdi), %eax
    0.00 :   55bc61:        cmpl    0x4(%rdi), %eax
   13.37 :   55bc64:        jb      0x55bc70 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x30>
    0.00 :   55bc66:        movl    $0x0, 0x10(%rsp)
    0.35 :   55bc6e:        jmp     0x55bca2 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next+0x62>
    0.00 :   55bc70:        movq    0x8(%rsp), %rax
    0.00 :   55bc75:        movl    (%rax), %edi
    0.00 :   55bc77:        movl    %edi, 0x4(%rsp)
   13.69 :   55bc7b:        movl    %edi, 0x24(%rsp)
    0.00 :   55bc7f:        movl    $0x1, %esi
    1.47 :   55bc84:        callq   0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>
    0.00 :   55bc89:        movq    0x8(%rsp), %rcx
    0.00 :   55bc8e:        movl    %eax, %edx
    0.00 :   55bc90:        movl    0x4(%rsp), %eax
   16.56 :   55bc94:        movl    %edx, (%rcx)
    0.00 :   55bc96:        movl    %eax, 0x14(%rsp)
    0.00 :   55bc9a:        movl    $0x1, 0x10(%rsp)
    0.00 :   55bca2:        movl    0x10(%rsp), %eax
   16.32 :   55bca6:        movl    0x14(%rsp), %edx
    0.00 :   55bcaa:        addq    $0x38, %rsp
   16.48 :   55bcae:        retq
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (1034 samples, percent: local period)
--------------------------------------------------------------------------------------------------------------
         : 0      0x55bcb0 <test_rs>:
    0.00 :   55bcb0:        subq    $0x98, %rsp
    0.00 :   55bcb7:        movl    %edi, 0x2c(%rsp)
    0.00 :   55bcbb:        movl    %edi, 0x84(%rsp)
    0.29 :   55bcc2:        leaq    0x22b557(%rip), %rsi  # 0x787220
    0.00 :   55bcc9:        leaq    0x60(%rsp), %rdi
    0.00 :   55bcce:        movl    $0x4, %edx
    0.29 :   55bcd3:        callq   0x55baf0 <<alloc::string::String as core::convert::From<&str>>::from>
    0.10 :   55bcd8:        jmp     0x55bce0 <test_rs+0x30>
    0.00 :   55bcda:        callq   *0xa493b0(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bce0:        movl    0x2c(%rsp), %esi
    0.00 :   55bce4:        movq    $0x0, 0x48(%rsp)
    0.00 :   55bced:        movq    0x70(%rsp), %rax
    0.00 :   55bcf2:        movq    %rax, 0x40(%rsp)
    2.23 :   55bcf7:        movups  0x60(%rsp), %xmm0
    0.58 :   55bcfc:        movaps  %xmm0, 0x30(%rsp)
    0.00 :   55bd01:        movq    $0x0, 0x50(%rsp)
    0.00 :   55bd0a:        movl    $0x1, %edi
    0.19 :   55bd0f:        callq   0x55bae0 <<I as core::iter::traits::collect::IntoIterator>::into_iter>
    0.00 :   55bd14:        movl    %edx, 0x24(%rsp)
    0.00 :   55bd18:        movl    %eax, 0x28(%rsp)
    0.10 :   55bd1c:        jmp     0x55bd40 <test_rs+0x90>
    0.00 :   55bd1e:        leaq    0x30(%rsp), %rdi
    0.00 :   55bd23:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.00 :   55bd28:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bd2a:        movq    %rax, %rcx
    0.00 :   55bd2d:        movl    %edx, %eax
    0.00 :   55bd2f:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bd37:        movl    %eax, 0x90(%rsp)
    0.00 :   55bd3e:        jmp     0x55bd1e <test_rs+0x6e>
    0.00 :   55bd40:        movl    0x24(%rsp), %eax
    0.00 :   55bd44:        movl    0x28(%rsp), %ecx
    0.00 :   55bd48:        movl    %ecx, 0x7c(%rsp)
    0.10 :   55bd4c:        movl    %eax, 0x80(%rsp)
    0.00 :   55bd53:        leaq    0x7c(%rsp), %rdi
   11.89 :   55bd58:        callq   0x55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>
    0.00 :   55bd5d:        movl    %eax, 0x20(%rsp)
    1.84 :   55bd61:        jmp     0x55bd63 <test_rs+0xb3>
    0.00 :   55bd63:        movl    0x20(%rsp), %eax
    0.00 :   55bd67:        movl    %eax, %eax
    0.00 :   55bd69:        testq   $0x1, %rax
    0.19 :   55bd6f:        je      0x55bd89 <test_rs+0xd9>
   16.73 :   55bd71:        movq    0x48(%rsp), %rcx
    0.00 :   55bd76:        movq    %rcx, %rax
    0.00 :   55bd79:        addq    $0x1, %rax
    0.00 :   55bd7d:        movq    %rax, 0x18(%rsp)
    2.03 :   55bd82:        cmpq    %rcx, %rax
    0.00 :   55bd85:        jb      0x55bdcd <test_rs+0x11d>
    3.48 :   55bd87:        jmp     0x55bdb9 <test_rs+0x109>
    0.00 :   55bd89:        leaq    0x30(%rsp), %rdi
    0.48 :   55bd8e:        callq   0x55b6f0 <core::ptr::drop_in_place<code_with_type::Buf>>
    0.10 :   55bd93:        jmp     0x55bdb1 <test_rs+0x101>
    0.00 :   55bd95:        callq   *0xa492f5(%rip)  # 0xfa5090 <_DYNAMIC+0x650>
    0.00 :   55bd9b:        movq    %rax, %rcx
    0.00 :   55bd9e:        movl    %edx, %eax
    0.00 :   55bda0:        movq    %rcx, 0x88(%rsp)
    0.00 :   55bda8:        movl    %eax, 0x90(%rsp)
    0.00 :   55bdaf:        jmp     0x55bd95 <test_rs+0xe5>
    0.00 :   55bdb1:        addq    $0x98, %rsp
    0.19 :   55bdb8:        retq
    0.00 :   55bdb9:        movq    0x18(%rsp), %rax
    0.00 :   55bdbe:        movq    %rax, 0x48(%rsp)
    0.00 :   55bdc3:        cmpq    $0x7b, 0x48(%rsp)
   14.19 :   55bdc9:        je      0x55bde1 <test_rs+0x131>
    6.68 :   55bdcb:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55bdcd:        leaq    0xa3fc44(%rip), %rdi  # 0xf9ba18
    0.00 :   55bdd4:        leaq    -0x150ffb(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55bddb:        callq   *%rax
    0.00 :   55bddd:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55bddf:        ud2
    0.00 :   55bde1:        movq    0x48(%rsp), %rcx
    0.00 :   55bde6:        movq    %rcx, %rax
    0.00 :   55bde9:        addq    $0x1, %rax
    0.00 :   55bded:        movq    %rax, 0x10(%rsp)
    0.00 :   55bdf2:        cmpq    %rcx, %rax
    0.00 :   55bdf5:        jb      0x55be21 <test_rs+0x171>
    0.00 :   55bdf7:        jmp     0x55be15 <test_rs+0x165>
    0.00 :   55bdf9:        movq    0x48(%rsp), %rdx
    0.00 :   55bdfe:        movq    0x50(%rsp), %rcx
    0.00 :   55be03:        movq    %rcx, %rax
   17.03 :   55be06:        addq    %rdx, %rax
    0.00 :   55be09:        movq    %rax, 0x8(%rsp)
    0.00 :   55be0e:        cmpq    %rcx, %rax
    0.00 :   55be11:        jb      0x55be42 <test_rs+0x192>
   19.93 :   55be13:        jmp     0x55be33 <test_rs+0x183>
    0.00 :   55be15:        movq    0x10(%rsp), %rax
    0.00 :   55be1a:        movq    %rax, 0x48(%rsp)
    0.00 :   55be1f:        jmp     0x55bdf9 <test_rs+0x149>
    0.00 :   55be21:        leaq    0xa3fc08(%rip), %rdi  # 0xf9ba30
    0.00 :   55be28:        leaq    -0x15104f(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be2f:        callq   *%rax
    0.00 :   55be31:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be33:        movq    0x8(%rsp), %rax
    0.00 :   55be38:        movq    %rax, 0x50(%rsp)
    1.35 :   55be3d:        jmp     0x55bd53 <test_rs+0xa3>
    0.00 :   55be42:        leaq    0xa3fbff(%rip), %rdi  # 0xf9ba48
    0.00 :   55be49:        leaq    -0x151070(%rip), %rax  # 0x40ade0 <core::panicking::panic_const::panic_const_add_overflow>
    0.00 :   55be50:        callq   *%rax
    0.00 :   55be52:        jmp     0x55bddf <test_rs+0x12f>
    0.00 :   55be54:        callq   *0xa49c2e(%rip)  # 0xfa5a88 <_DYNAMIC+0x1048>
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (576 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>:
    0.00 :   55b190:        subq    $0x68, %rsp
    0.00 :   55b194:        movl    %edi, %eax
    0.00 :   55b196:        movq    %rdx, (%rsp)
   34.20 :   55b19a:        movl    %eax, 0x48(%rsp)
    0.00 :   55b19e:        movl    %esi, 0x4c(%rsp)
    0.00 :   55b1a2:        leaq    0x2922af(%rip), %rcx  # 0x7ed458
    0.00 :   55b1a9:        movq    %rcx, 0x50(%rsp)
   31.25 :   55b1ae:        movq    $0xb8, 0x58(%rsp)
    0.00 :   55b1b7:        movl    %eax, %edi
    0.00 :   55b1b9:        addl    %esi, %edi
    0.00 :   55b1bb:        cmpl    %eax, %edi
    0.00 :   55b1bd:        jb      0x55b1c4 <core::num::<impl u32>::unchecked_add::precondition_check+0x34>
    3.82 :   55b1bf:        addq    $0x68, %rsp
   30.73 :   55b1c3:        retq
    0.00 :   55b1c4:        movq    (%rsp), %rdx
    0.00 :   55b1c8:        leaq    0x292289(%rip), %rax  # 0x7ed458
    0.00 :   55b1cf:        movq    %rax, 0x38(%rsp)
    0.00 :   55b1d4:        movq    $0xb8, 0x40(%rsp)
    0.00 :   55b1dd:        leaq    0x38(%rsp), %rax
    0.00 :   55b1e2:        movq    %rax, 0x60(%rsp)
    0.00 :   55b1e7:        leaq    0x38(%rsp), %rax
    0.00 :   55b1ec:        movq    %rax, 0x8(%rsp)
    0.00 :   55b1f1:        movq    $0x1, 0x10(%rsp)
    0.00 :   55b1fa:        movq    0x27efdf(%rip), %rcx  # 0x7da1e0
    0.00 :   55b201:        movq    0x27efe0(%rip), %rax  # 0x7da1e8
    0.00 :   55b208:        movq    %rcx, 0x28(%rsp)
    0.00 :   55b20d:        movq    %rax, 0x30(%rsp)
    0.00 :   55b212:        movl    $0x8, %eax
    0.00 :   55b217:        movq    %rax, 0x18(%rsp)
    0.00 :   55b21c:        movq    $0x0, 0x20(%rsp)
    0.00 :   55b225:        leaq    0x8(%rsp), %rdi
    0.00 :   55b22a:        xorl    %esi, %esi
    0.00 :   55b22c:        callq   *0xa4ad96(%rip)  # 0xfa5fc8 <_DYNAMIC+0x1588>
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (554 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55b140 <<u32 as core::iter::range::Step>::forward_unchecked>:
    0.00 :   55b140:        subq    $0x28, %rsp
    0.00 :   55b144:        movl    %edi, 0xc(%rsp)
    0.00 :   55b148:        movl    %edi, 0x14(%rsp)
   22.19 :   55b14c:        movq    %rsi, 0x18(%rsp)
    0.00 :   55b151:        movl    %esi, %eax
    0.00 :   55b153:        movl    %eax, 0x10(%rsp)
    0.00 :   55b157:        movl    %eax, 0x24(%rsp)
   14.28 :   55b15b:        movl    0x10(%rsp), %esi
    0.00 :   55b15f:        movl    0xc(%rsp), %edi
    0.00 :   55b163:        leaq    0xa40826(%rip), %rdx  # 0xf9b990
    3.98 :   55b16a:        callq   0x55b190 <core::num::<impl u32>::unchecked_add::precondition_check>
    0.00 :   55b16f:        movl    0x10(%rsp), %ecx
    0.00 :   55b173:        movl    0xc(%rsp), %eax
    0.00 :   55b177:        addl    %ecx, %eax
   30.49 :   55b179:        addq    $0x28, %rsp
   29.07 :   55b17d:        retq
 Percent |	Source code & Disassembly of perf for cpu_core/cycles/Pu (429 samples, percent: local period)
-------------------------------------------------------------------------------------------------------------
         : 0      0x55b820 <core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next>:
    0.00 :   55b820:        pushq   %rax
    0.00 :   55b821:        movq    %rdi, (%rsp)
   60.17 :   55b825:        callq   0x55bc40 <<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next>
    0.23 :   55b82a:        popq    %rcx
   39.60 :   55b82b:        retq
---- end(-1) ----
 83: perf data type profiling tests                                  : FAILED!
⬢ [acme@...lbx perf-tools-next]$ 



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ