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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201123234735.GB2088148@krava>
Date:   Tue, 24 Nov 2020 00:47:35 +0100
From:   Jiri Olsa <jolsa@...hat.com>
To:     Song Liu <songliubraving@...com>
Cc:     linux-kernel@...r.kernel.org, kernel-team@...com,
        peterz@...radead.org, mingo@...hat.com, acme@...nel.org,
        mark.rutland@....com, alexander.shishkin@...ux.intel.com,
        namhyung@...nel.org
Subject: Re: [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@...alhost ~]# ~/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@...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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ