From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Alan Maguire <alan.maguire@oracle.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
David Vernet <void@manifault.com>, Yonghong Song <yhs@fb.com>,
Alexei Starovoitov <ast@kernel.org>,
Jiri Olsa <olsajiri@gmail.com>, Eddy Z <eddyz87@gmail.com>,
sinquersw@gmail.com, Timo Beckers <timo@incline.eu>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
Song Liu <songliubraving@fb.com>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@chromium.org>,
Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
Martin KaFai Lau <martin.lau@kernel.org>,
bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH v2 dwarves 1/5] dwarves: help dwarf loader spot functions with optimized-out parameters
Date: Wed, 1 Feb 2023 15:54:32 -0300 [thread overview]
Message-ID: <Y9q1aEQtYNHsGMWb@kernel.org> (raw)
In-Reply-To: <a9679d64-4860-a404-6030-22e104aec67f@oracle.com>
Em Wed, Feb 01, 2023 at 05:18:29PM +0000, Alan Maguire escreveu:
> On 01/02/2023 17:01, Arnaldo Carvalho de Melo wrote:
> > Em Wed, Feb 01, 2023 at 08:49:07AM -0800, Alexei Starovoitov escreveu:
> >> It feels fixed pahole should be done under some flag
> >> otherwise when people update the pahole the existing and older
> >> kernels might stop building with warns:
> >> WARN: resolve_btfids: unresolved symbol bpf_xdp_metadata_rx_hash
> >> WARN: resolve_btfids: unresolved symbol bpf_task_kptr_get
> >> ...
> Good point, something like
> --skip_inconsistent_proto Skip functions that have multiple inconsistent
> function prototypes sharing the same name, or
> have optimized-out parameters.
We have:
⬢[acme@toolbox pahole]$ grep '"skip_encoding.*' pahole.c
.name = "skip_encoding_btf_vars",
.name = "skip_encoding_btf_decl_tag",
.name = "skip_encoding_btf_type_tag",
.name = "skip_encoding_btf_enum64",
⬢[acme@toolbox pahole]$
Perhaps, even being long, we should be consistent and name it:
--skip_encoding_btf_inconsistent_proto
?
> ? Implementation needs a bit of thought though because we're
> not really doing the same thing that we were before. Previously we
> were adding the first instance of a function in the CU we came across.
> Probably safest to resurrect that behaviour for the legacy
> non-skip-inconsistent-proto case I think. The final patch handling
Consider getting what I have now in my next branch, that has the fixups
I made while reviewing, as discussed in this thread:
⬢[acme@toolbox pahole]$ git log --oneline -6
b1576cf15106efd7 (HEAD -> master) pahole: Sync with libbpf-1.1
e9db5622d97395b7 btf_encoder: Delay function addition to check for function prototype inconsistencies
74675488e8ed5718 btf_encoder: Represent "."-suffixed functions (".isra.0") in BTF
be470fa5757e5915 btf_encoder: Rework btf_encoders__*() API to allow traversal of encoders
d6e0778f6b5912da btf_encoder: Refactor function addition into dedicated btf_encoder__add_func
f77b5ae93844b5c4 dwarf_loader: Help spotting functions with optimized-out parameters
⬢[acme@toolbox pahole]$
And at the point where you change the behaviour you introduce the
option, so that we don't have to remove it and then ressurect.
- Arnaldo
> inconsistent function prototypes will need to be reworked a bit to
> support this, since we tossed this approach and used saving/merging
> multiple instances in the tree instead. Once I've built bpf trees I'll
> have a go at getting this working.
>
> >> Arnaldo, could you check what warns do you see with this fixed pahole
> >> in bpf tree ?
> >
> > Sure.
> >
>
> I can collect this for x86_64/aarch64 too; might take a few hours
> before I have the results.
>
> >> If there are only few warns then we can manually add __used noinline
> >> to these places, push to bpf tree and push to stable.
> >>
> >> Then in bpf-next we can clean up everything with __bpf_kfunc.
> >
--
- Arnaldo
next prev parent reply other threads:[~2023-02-01 18:54 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-30 14:29 [PATCH v2 dwarves 0/5] dwarves: support encoding of optimized-out parameters, removal of inconsistent static functions Alan Maguire
2023-01-30 14:29 ` [PATCH v2 dwarves 1/5] dwarves: help dwarf loader spot functions with optimized-out parameters Alan Maguire
2023-01-30 18:36 ` Arnaldo Carvalho de Melo
2023-01-30 20:10 ` Arnaldo Carvalho de Melo
2023-01-30 20:23 ` Arnaldo Carvalho de Melo
2023-01-30 22:37 ` Alan Maguire
2023-01-31 0:25 ` Arnaldo Carvalho de Melo
2023-01-31 1:04 ` Arnaldo Carvalho de Melo
2023-01-31 12:14 ` Alan Maguire
2023-01-31 12:33 ` Arnaldo Carvalho de Melo
2023-01-31 13:35 ` Jiri Olsa
2023-01-31 17:43 ` Alexei Starovoitov
2023-01-31 18:16 ` Alexei Starovoitov
2023-01-31 23:45 ` Alan Maguire
2023-01-31 23:58 ` David Vernet
2023-02-01 0:14 ` Alexei Starovoitov
2023-02-01 3:02 ` David Vernet
2023-02-01 13:59 ` Alan Maguire
2023-02-01 15:02 ` Arnaldo Carvalho de Melo
2023-02-01 15:13 ` Alan Maguire
2023-02-01 15:19 ` David Vernet
2023-02-01 16:49 ` Alexei Starovoitov
2023-02-01 17:01 ` Arnaldo Carvalho de Melo
2023-02-01 17:18 ` Alan Maguire
2023-02-01 18:54 ` Arnaldo Carvalho de Melo [this message]
2023-02-01 22:33 ` Alan Maguire
2023-02-01 22:32 ` Arnaldo Carvalho de Melo
2023-02-02 1:09 ` Arnaldo Carvalho de Melo
2023-02-03 1:09 ` Yonghong Song
2023-01-30 14:29 ` [PATCH v2 dwarves 2/5] btf_encoder: refactor function addition into dedicated btf_encoder__add_func Alan Maguire
2023-02-01 17:19 ` Arnaldo Carvalho de Melo
2023-02-01 17:50 ` Alan Maguire
2023-02-01 18:59 ` Arnaldo Carvalho de Melo
2023-01-30 14:29 ` [PATCH v2 dwarves 3/5] btf_encoder: rework btf_encoders__*() API to allow traversal of encoders Alan Maguire
2023-01-30 22:04 ` Jiri Olsa
2023-01-31 0:24 ` Arnaldo Carvalho de Melo
2023-01-30 14:29 ` [PATCH v2 dwarves 4/5] btf_encoder: represent "."-suffixed functions (".isra.0") in BTF Alan Maguire
2023-01-30 14:29 ` [PATCH v2 dwarves 5/5] btf_encoder: delay function addition to check for function prototype inconsistencies Alan Maguire
2023-01-30 17:20 ` Alexei Starovoitov
2023-01-30 18:08 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y9q1aEQtYNHsGMWb@kernel.org \
--to=acme@kernel.org \
--cc=alan.maguire@oracle.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=kpsingh@chromium.org \
--cc=martin.lau@kernel.org \
--cc=olsajiri@gmail.com \
--cc=sdf@google.com \
--cc=sinquersw@gmail.com \
--cc=songliubraving@fb.com \
--cc=timo@incline.eu \
--cc=void@manifault.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.