From: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
To: "bpf@vger.kernel.org" <bpf@vger.kernel.org>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Hari Bathini <hbathini@linux.ibm.com>,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
Cc: Andrii Nakryiko <andrii@kernel.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Song Liu <songliubraving@fb.com>
Subject: Re: [PATCH] powerpc/bpf: populate extable entries only during the last pass
Date: Mon, 24 Apr 2023 17:25:58 +0530 [thread overview]
Message-ID: <1682336435.n6cw11rdyx.naveen@linux.ibm.com> (raw)
In-Reply-To: <0d136b2a-2db8-f2b1-418e-f245e95c921f@linux.ibm.com>
Hari Bathini wrote:
> Hello Christophe,
>
> Thanks for the review.
>
> On 07/04/23 11:31 am, Christophe Leroy wrote:
>>
>>
>> Le 06/04/2023 à 09:35, Hari Bathini a écrit :
>>> Since commit 85e031154c7c ("powerpc/bpf: Perform complete extra passes
>>> to update addresses"), two additional passes are performed to avoid
>>> space and CPU time wastage on powerpc. But these extra passes led to
>>> WARN_ON_ONCE() hits in bpf_add_extable_entry(). Fix it by not adding
>>> extable entries during the extra pass.
>>
>> Are you sure this change is correct ?
>
> Actually, I was in two minds about that owing to commit 04c04205bc35
> ("bpf powerpc: Remove extra_pass from bpf_jit_build_body()").
Right, but Christophe's series adding complete passes during the
extra_pass phase added 'extra_pass' parameter back to
bpf_jit_build_body().
>
>> During the extra pass the code can get shrinked or expanded (within the
>> limits of the size of the preliminary pass). Shouldn't extable entries
>> be populated during the last pass ?
>
> Unlikely, but the intention there was to eliminate a regression in case
> extra_pass ends up being 'false' always in any subsequent change.
But, the current approach risks generating incorrect offsets in the
extable. The main motivation for the extra pass is to generate more
compact code, so there is a good chance that offsets are going to change
(especially with bpf subprogs).
>
> - Hari
>
>>>
>>> Fixes: 85e031154c7c ("powerpc/bpf: Perform complete extra passes to update addresses")
>>> Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
>>> ---
>>> arch/powerpc/net/bpf_jit_comp32.c | 2 +-
>>> arch/powerpc/net/bpf_jit_comp64.c | 2 +-
>>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/powerpc/net/bpf_jit_comp32.c b/arch/powerpc/net/bpf_jit_comp32.c
>>> index 7f91ea064c08..e788b1fbeee6 100644
>>> --- a/arch/powerpc/net/bpf_jit_comp32.c
>>> +++ b/arch/powerpc/net/bpf_jit_comp32.c
>>> @@ -977,7 +977,7 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, struct codegen_context *
>>> if (size != BPF_DW && !fp->aux->verifier_zext)
>>> EMIT(PPC_RAW_LI(dst_reg_h, 0));
>>>
>>> - if (BPF_MODE(code) == BPF_PROBE_MEM) {
>>> + if (BPF_MODE(code) == BPF_PROBE_MEM && !extra_pass) {
It is probably better to pass 'extra_pass' into bpf_add_extable_entry()
to keep all those checks together.
- Naveen
next prev parent reply other threads:[~2023-04-24 11:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-06 7:35 [PATCH] powerpc/bpf: populate extable entries only during the last pass Hari Bathini
2023-04-07 6:01 ` Christophe Leroy
2023-04-13 3:08 ` Hari Bathini
2023-04-24 11:55 ` Naveen N. Rao [this message]
2023-04-25 6:59 ` Hari Bathini
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=1682336435.n6cw11rdyx.naveen@linux.ibm.com \
--to=naveen.n.rao@linux.ibm.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=daniel@iogearbox.net \
--cc=hbathini@linux.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=songliubraving@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox