On Sat, May 21, 2022 at 02:44:05PM -0300, Arnaldo Carvalho de Melo wrote: > Em Fri, May 20, 2022 at 02:46:49PM -0700, Andrii Nakryiko escreveu: > > On Thu, May 19, 2022 at 4:03 AM Jiri Olsa <olsajiri@xxxxxxxxx> wrote: > > > On Wed, May 18, 2022 at 11:46:44AM +0200, Jiri Olsa wrote: > > > > On Tue, May 17, 2022 at 03:02:53PM -0700, Andrii Nakryiko wrote: > > > > > Jiri, libbpf v0.8 is out, can you please re-send your perf patches? > > > > > yep, just made new fedora package.. will resend the perf changes soon > > > > fedora package is on the way, but I'll need perf/core to merge > > > the bpf_program__set_insns change.. Arnaldo, any idea when this > > > could happen? > > > Can we land these patches through bpf-next to avoid such complicated > > cross-tree dependencies? As I started removing libbpf APIs I also > > noticed that perf is still using few other deprecated APIs: > > - bpf_map__next; > > - bpf_program__next; > > - bpf_load_program; > > - btf__get_from_id; these were added just to bypass the time window when they were not available in the package, so can be removed now (in the patch below) > > > It's trivial to fix up, but doing it across few trees will delay > > libbpf work as well. > > > So let's land this through bpf-next, if Arnaldo doesn't mind? > > Yeah, that should be ok, the only consideration is that I'm submitting > this today to Linus: > > https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/commit/?h=tmp.perf/urgent&id=0ae065a5d265bc5ada13e350015458e0c5e5c351 > > To address this: > > https://lore.kernel.org/linux-perf-users/f0add43b-3de5-20c5-22c4-70aff4af959f@xxxxxxxxxxxx/ ok, we can do that via bpf-next, but of course there's a problem ;-) perf/core already has dependency commit [1] so either we wait for perf/core and bpf-next/master to sync or: - perf/core reverts [1] and - bpf-next/master takes [1] and the rest I have the changes ready if you guys are ok with that thanks, jirka [1] https://lore.kernel.org/bpf/20220422100025.1469207-4-jolsa@xxxxxxxxxx/ --- Subject: [PATCH bpf-next] perf tools: Remove the weak libbpf functions We added weak functions for some new libbpf functions because they were not packaged at that time [1]. These functions are now available in package, so we can remove their weak perf variants. [1] https://lore.kernel.org/linux-perf-users/20211109140707.1689940-2-jolsa@xxxxxxxxxx/ Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> --- tools/perf/util/bpf-event.c | 51 ------------------------------------- 1 file changed, 51 deletions(-) diff --git a/tools/perf/util/bpf-event.c b/tools/perf/util/bpf-event.c index 94624733af7e..025f331b3867 100644 --- a/tools/perf/util/bpf-event.c +++ b/tools/perf/util/bpf-event.c @@ -22,57 +22,6 @@ #include "record.h" #include "util/synthetic-events.h" -struct btf * __weak btf__load_from_kernel_by_id(__u32 id) -{ - struct btf *btf; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - int err = btf__get_from_id(id, &btf); -#pragma GCC diagnostic pop - - return err ? ERR_PTR(err) : btf; -} - -int __weak bpf_prog_load(enum bpf_prog_type prog_type, - const char *prog_name __maybe_unused, - const char *license, - const struct bpf_insn *insns, size_t insn_cnt, - const struct bpf_prog_load_opts *opts) -{ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - return bpf_load_program(prog_type, insns, insn_cnt, license, - opts->kern_version, opts->log_buf, opts->log_size); -#pragma GCC diagnostic pop -} - -struct bpf_program * __weak -bpf_object__next_program(const struct bpf_object *obj, struct bpf_program *prev) -{ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - return bpf_program__next(prev, obj); -#pragma GCC diagnostic pop -} - -struct bpf_map * __weak -bpf_object__next_map(const struct bpf_object *obj, const struct bpf_map *prev) -{ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - return bpf_map__next(prev, obj); -#pragma GCC diagnostic pop -} - -const void * __weak -btf__raw_data(const struct btf *btf_ro, __u32 *size) -{ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - return btf__get_raw_data(btf_ro, size); -#pragma GCC diagnostic pop -} - static int snprintf_hex(char *buf, size_t size, unsigned char *data, size_t len) { int ret = 0; -- 2.35.3