[GIT PULL] perf tools changes for v6.4: 2nd attempt

From: Arnaldo Carvalho de Melo
Date: Fri May 05 2023 - 19:08:44 EST


Hi Linus,

Please see if this is now ok, otherwise holler and we'll try
again to address whatever problems remain,

Best regards,

- Arnaldo

The following changes since commit 1f85d016768ff19f060f3cce014a43c761de8259:

perf test record+probe_libc_inet_pton: Fix call chain match on x86_64 (2023-05-03 11:02:21 -0300)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-tools-for-v6.4-2-2023-05-05

for you to fetch changes up to 6c73f819b6b6d6f052e8dbe3f66f0693554ddf48:

perf metrics: Fix SEGV with --for-each-cgroup (2023-05-05 19:18:55 -0300)

----------------------------------------------------------------
Additional fixes on top of the previous v6.4 perf tools pull request:

- Remove the use of bpftool to generate a vmlinux.h file to be used when
building BPF bytecode that enables perf tools features.

Instead add a vmlinux.h file with just the set of structs and fields
used in the tools/perf/util/bpf_skel/*.bpf.c files and rely on libbpf's
CO-RE functionality to compare the BTF info generated by clang for the
BPF target against the BPF info for the kernel where the resulting tool
runs to adjust it before loading into the kernel.

- Fix 'perf stat -b <prog id>' to match counter values obtained via
'bpftool prog profile <prog id>', as fentry/fexit progs gets loaded,
but the corresponding perf event wasn't being enabled and added into
the events BPF map.

- Fix copy of 'perf stat' metric threshold to avoid SEGV on using
uninitialized memory.

Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf bpf skels: Stop using vmlinux.h generated from BTF, use subset of used structs + CO-RE

Dmitrii Dolgov (1):
perf stat: Separate bperf from bpf_profiler

Ian Rogers (1):
perf metrics: Fix SEGV with --for-each-cgroup

tools/perf/Makefile.perf | 20 +----
tools/perf/builtin-stat.c | 4 +-
tools/perf/util/bpf_skel/.gitignore | 1 -
tools/perf/util/bpf_skel/vmlinux.h | 173 ++++++++++++++++++++++++++++++++++++
tools/perf/util/evsel.h | 5 ++
tools/perf/util/metricgroup.c | 1 +
6 files changed, 182 insertions(+), 22 deletions(-)
create mode 100644 tools/perf/util/bpf_skel/vmlinux.h