Skip to content

assembler label support #741

@GitMensch

Description

@GitMensch

Is your feature request related to a problem? Please describe.
I have a scenario of generated asm labels.

    asm volatile(
        ".globl labelC_sym\n"
        ".type  labelC_sym, @function\n"
        "labelC_sym:\n"
    );

perf report shows them "as expected", while those are "invisible" in hotspot.

Samples: 22  of event 'cycles:Pu', Event count (approx.): 1350026
  Children      Self  Command  Shared Object         Symbol
+   69.86%     0.00%  a.out    a.out                 [.] _start                                                        ▒
+   69.86%     0.00%  a.out    libc.so.6             [.] __libc_start_main@GLIBC_2.2.5 (inlined)                       ▒
+   69.86%     0.00%  a.out    libc.so.6             [.] __libc_start_call_main                                        ▒
-   69.86%     0.00%  a.out    a.out                 [.] main                                                          ▒
   - main                                                                                                              ▒
      - 23.94% labelA_sym                                                                                              ▒
           usleep                                                                                                      ▒
           nanosleep (inlined)                                                                                         ▒
           clock_nanosleep@@GLIBC_2.17 (inlined)                                                                       ◆
         + __internal_syscall_cancel                                                                                   ▒
      - 23.33% labelC_sym                                                                                              ▒
           usleep                                                                                                      ▒
           nanosleep (inlined)                                                                                         ▒
           clock_nanosleep@@GLIBC_2.17 (inlined)                                                                       ▒
           __internal_syscall_cancel                                                                                   ▒
           0xffffffff81f12f02                                                                                          ▒
      - 22.59% labelB_sym                                                                                              ▒
           usleep                                                                                                      ▒
           nanosleep (inlined)                                                                                         ▒
           clock_nanosleep@@GLIBC_2.17 (inlined)                                                                       ▒
           __internal_syscall_cancel                                                                                   ▒
           0xffffffff81f12f02                                                                                          ▒

vs.

Image Image

Describe the solution you'd like
Make those labels visible as perf report does, likely needs adjustments to perfparser.

Steps to reproduce
(reproducer created by ChatGPT)

chck.c

gcc -g chck.c
perf record -o perf.asm.data --aio --call-graph dwarf,8192 --sample-cpu --mmap-pages 4M ./a.out
perf report -i perf.asm.data
hotsport perf.asm.data

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions