Re: [PATCHv2 0/3] perf tools: Fix prologue generation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 23, 2022 at 12:49 AM Jiri Olsa <olsajiri@xxxxxxxxx> wrote:
>
> 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

So, if I understand correctly, with merge window open bpf-next/master
will get code from perf/core soon when we merge tip back in. So we can
wait for that to happen and not revert anything.

So please add the below patch to your series and resend once tip is
merged into bpf-next? Thanks!

>
> 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
>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux