[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZFPw0scDq1eIzfHr@kernel.org>
Date: Thu, 4 May 2023 14:52:18 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Song Liu <song@...nel.org>, Andrii Nakryiko <andrii@...nel.org>,
Ingo Molnar <mingo@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Clark Williams <williams@...hat.com>,
Kate Carcia <kcarcia@...hat.com>, linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org,
Adrian Hunter <adrian.hunter@...el.com>,
Changbin Du <changbin.du@...wei.com>,
Hao Luo <haoluo@...gle.com>, Ian Rogers <irogers@...gle.com>,
James Clark <james.clark@....com>,
Kan Liang <kan.liang@...ux.intel.com>,
Roman Lozko <lozko.roma@...il.com>,
Stephane Eranian <eranian@...gle.com>,
Thomas Richter <tmricht@...ux.ibm.com>,
Arnaldo Carvalho de Melo <acme@...hat.com>
Subject: Re: BPF skels in perf .Re: [GIT PULL] perf tools changes for v6.4
Em Thu, May 04, 2023 at 10:25:30AM -0700, Linus Torvalds escreveu:
> On Thu, May 4, 2023 at 4:09 AM Arnaldo Carvalho de Melo <acme@...nel.org> wrote:
> > Does building runqslower works for you in this same environment where
> > building perf failed?
> I don't know, and I don't care. I've never used that thing, and I'm
> not going to.
> And it's irrelevant. Two wrongs do not make a right.
> I'm going to ignore perf tools pulls going forward if this is the kind
> of argument for garbage that you use.
> Because a billion flies *can* be wrong.
I pushed two reverts there that make this back into a
opt-in/experimental feature till we fix the issue you reported:
⬢[acme@...lbox perf-tools]$ git log --oneline -3
e7b7a54767a71c67 (HEAD -> perf-tools, acme/perf-tools) Revert "perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL"
6957bdf37a1e6eca Revert "perf build: Warn for BPF skeletons if endian mismatches"
1f85d016768ff19f (tag: perf-tools-for-v6.4-1-2023-05-03) perf test record+probe_libc_inet_pton: Fix call chain match on x86_64
⬢[acme@...lbox perf-tools]$
Its in:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git perf-tools
Using a vmlinux.h file built by bpftool from the BTF info, be it in a
vmlinux file or in /sys/kernel/btf/vmlinux (a RAW BTF file) is used for
building the BPF bytecode, using clang:
⬢[acme@...lbox perf-tools]$ head tools/perf/util/bpf_skel/sample_filter.bpf.c
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
// Copyright (c) 2023 Google
#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
#include <bpf/bpf_core_read.h>
#include "sample-filter.h"
/* BPF map that will be filled by user space */
⬢[acme@...lbox perf-tools]$
So that it can access kernel types and store the type info for those
types together with the BPF bytecode, as BTF info, and later use this
and relocation records for libbpf to be able to adjust things when
accessed data structures change in the kernel and needs adjustments
based in both the kernel BTF info (/sys/kernel/btf/vmlinux) and the
BPF bytecode being loaded (in its .BTF ELF section).
Andrii, can you add some more information about the usage of vmlinux.h
instead of using kernel headers?
- Arnaldo
Powered by blists - more mailing lists