lkml.org 
[lkml]   [2020]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC 2/2] perf-stat: enable counting events for BPF programs
    On Wed, Nov 18, 2020 at 08:50:46PM -0800, Song Liu wrote:
    > Introduce perf-stat -b option, which counts events for BPF programs, like:
    >
    > [root@localhost ~]# ~/perf stat -e ref-cycles,cycles -b 254 -I 1000
    > 1.487903822 115,200 ref-cycles
    > 1.487903822 86,012 cycles
    > 2.489147029 80,560 ref-cycles
    > 2.489147029 73,784 cycles
    > 3.490341825 60,720 ref-cycles
    > 3.490341825 37,797 cycles
    > 4.491540887 37,120 ref-cycles
    > 4.491540887 31,963 cycles
    >
    > The example above counts cycles and ref-cycles of BPF program of id 254.
    > This is similar to bpftool-prog-profile command, but more flexible.
    >
    > perf-stat -b creates per-cpu perf_event and loads fentry/fexit BPF
    > programs (monitor-progs) to the target BPF program (target-prog). The
    > monitor-progs read perf_event before and after the target-prog, and
    > aggregate the difference in a BPF map. Then the user space reads data
    > from these maps.
    >
    > A new struct bpf_counter is introduced to provide common interface that
    > uses BPF programs/maps to count perf events.
    >
    > Signed-off-by: Song Liu <songliubraving@fb.com>

    I still need to review this deeply, but so far I'm getting this error:

    # ./perf stat -b 40
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: elf: skipping unrecognized data section(9) .eh_frame
    libbpf: elf: skipping relo section(15) .rel.eh_frame for section(9) .eh_frame
    libbpf: XXX is not found in vmlinux BTF
    libbpf: failed to load object 'bpf_prog_profiler_bpf'
    libbpf: failed to load BPF skeleton 'bpf_prog_profiler_bpf': -2
    libbpf: Can't get the 0th fd from program fentry_XXX: only -1 instances
    libbpf: prog 'fentry_XXX': can't attach before loaded
    libbpf: failed to auto-attach program 'fentry_XXX': -22

    jirka

    \
     
     \ /
      Last update: 2020-11-24 00:51    [W:6.252 / U:0.648 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site