* [PATCH bpf-next] bpf: Fix a 'unused function' compilation error
@ 2024-01-12 4:16 Yonghong Song
2024-01-12 4:59 ` Alexei Starovoitov
0 siblings, 1 reply; 4+ messages in thread
From: Yonghong Song @ 2024-01-12 4:16 UTC (permalink / raw)
To: bpf
Cc: Alexei Starovoitov, Andrii Nakryiko, Daniel Borkmann, kernel-team,
Martin KaFai Lau
Building the kernel with latest llvm18, I hit the following error:
/home/yhs/work/bpf-next/kernel/bpf/verifier.c:4383:13: error: unused function '__is_scalar_unbounded' [-Werror,-Wunused-function]
4383 | static bool __is_scalar_unbounded(struct bpf_reg_state *reg)
| ^~~~~~~~~~~~~~~~~~~~~
1 error generated.
Patches [1] and [2] are in the same patch set. Patch [1] removed
the usage of __is_scalar_unbounded(), and patch [2] re-introduced
the usage of the function. Currently patch [1] is merged into
bpf-next while patch [2] does not, hence the above compilation
error is triggered.
To fix the compilation failure, let us temporarily make
__is_scalar_unbounded() not accessible through macro '#if 0'.
It can be re-introduced later when [2] is ready to merge.
[1] https://lore.kernel.org/bpf/20240108205209.838365-11-maxtram95@gmail.com/
[2] https://lore.kernel.org/bpf/20240108205209.838365-15-maxtram95@gmail.com/
Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
---
kernel/bpf/verifier.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 7ddad07ae928..e1f42082f32f 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -4380,6 +4380,7 @@ static u64 reg_const_value(struct bpf_reg_state *reg, bool subreg32)
return subreg32 ? tnum_subreg(reg->var_off).value : reg->var_off.value;
}
+#if 0
static bool __is_scalar_unbounded(struct bpf_reg_state *reg)
{
return tnum_is_unknown(reg->var_off) &&
@@ -4388,6 +4389,7 @@ static bool __is_scalar_unbounded(struct bpf_reg_state *reg)
reg->s32_min_value == S32_MIN && reg->s32_max_value == S32_MAX &&
reg->u32_min_value == 0 && reg->u32_max_value == U32_MAX;
}
+#endif
static bool __is_pointer_value(bool allow_ptr_leaks,
const struct bpf_reg_state *reg)
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH bpf-next] bpf: Fix a 'unused function' compilation error
2024-01-12 4:16 [PATCH bpf-next] bpf: Fix a 'unused function' compilation error Yonghong Song
@ 2024-01-12 4:59 ` Alexei Starovoitov
2024-01-12 5:29 ` Yonghong Song
0 siblings, 1 reply; 4+ messages in thread
From: Alexei Starovoitov @ 2024-01-12 4:59 UTC (permalink / raw)
To: Yonghong Song
Cc: bpf, Alexei Starovoitov, Andrii Nakryiko, Daniel Borkmann,
Kernel Team, Martin KaFai Lau
On Thu, Jan 11, 2024 at 8:17 PM Yonghong Song <yonghong.song@linux.dev> wrote:
>
> Building the kernel with latest llvm18, I hit the following error:
>
> /home/yhs/work/bpf-next/kernel/bpf/verifier.c:4383:13: error: unused function '__is_scalar_unbounded' [-Werror,-Wunused-function]
> 4383 | static bool __is_scalar_unbounded(struct bpf_reg_state *reg)
> | ^~~~~~~~~~~~~~~~~~~~~
> 1 error generated.
>
> Patches [1] and [2] are in the same patch set. Patch [1] removed
> the usage of __is_scalar_unbounded(), and patch [2] re-introduced
> the usage of the function. Currently patch [1] is merged into
> bpf-next while patch [2] does not, hence the above compilation
> error is triggered.
>
> To fix the compilation failure, let us temporarily make
> __is_scalar_unbounded() not accessible through macro '#if 0'.
> It can be re-introduced later when [2] is ready to merge.
>
> [1] https://lore.kernel.org/bpf/20240108205209.838365-11-maxtram95@gmail.com/
> [2] https://lore.kernel.org/bpf/20240108205209.838365-15-maxtram95@gmail.com/
Ouch. Sorry. This interaction between patches was unexpected.
Instead of this particular if 0 patch, is there a way to amend pushed
patches to avoid this issue?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH bpf-next] bpf: Fix a 'unused function' compilation error
2024-01-12 4:59 ` Alexei Starovoitov
@ 2024-01-12 5:29 ` Yonghong Song
2024-01-12 6:02 ` Alexei Starovoitov
0 siblings, 1 reply; 4+ messages in thread
From: Yonghong Song @ 2024-01-12 5:29 UTC (permalink / raw)
To: Alexei Starovoitov
Cc: bpf, Alexei Starovoitov, Andrii Nakryiko, Daniel Borkmann,
Kernel Team, Martin KaFai Lau
On 1/11/24 8:59 PM, Alexei Starovoitov wrote:
> On Thu, Jan 11, 2024 at 8:17 PM Yonghong Song <yonghong.song@linux.dev> wrote:
>> Building the kernel with latest llvm18, I hit the following error:
>>
>> /home/yhs/work/bpf-next/kernel/bpf/verifier.c:4383:13: error: unused function '__is_scalar_unbounded' [-Werror,-Wunused-function]
>> 4383 | static bool __is_scalar_unbounded(struct bpf_reg_state *reg)
>> | ^~~~~~~~~~~~~~~~~~~~~
>> 1 error generated.
>>
>> Patches [1] and [2] are in the same patch set. Patch [1] removed
>> the usage of __is_scalar_unbounded(), and patch [2] re-introduced
>> the usage of the function. Currently patch [1] is merged into
>> bpf-next while patch [2] does not, hence the above compilation
>> error is triggered.
>>
>> To fix the compilation failure, let us temporarily make
>> __is_scalar_unbounded() not accessible through macro '#if 0'.
>> It can be re-introduced later when [2] is ready to merge.
>>
>> [1] https://lore.kernel.org/bpf/20240108205209.838365-11-maxtram95@gmail.com/
>> [2] https://lore.kernel.org/bpf/20240108205209.838365-15-maxtram95@gmail.com/
> Ouch. Sorry. This interaction between patches was unexpected.
> Instead of this particular if 0 patch, is there a way to amend pushed
> patches to avoid this issue?
Another option is that in merged patch [1] removing the function __is_scalar_unbounded().
And the function can be re-introduced later if needed.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH bpf-next] bpf: Fix a 'unused function' compilation error
2024-01-12 5:29 ` Yonghong Song
@ 2024-01-12 6:02 ` Alexei Starovoitov
0 siblings, 0 replies; 4+ messages in thread
From: Alexei Starovoitov @ 2024-01-12 6:02 UTC (permalink / raw)
To: Yonghong Song
Cc: bpf, Alexei Starovoitov, Andrii Nakryiko, Daniel Borkmann,
Kernel Team, Martin KaFai Lau
On Thu, Jan 11, 2024 at 9:29 PM Yonghong Song <yonghong.song@linux.dev> wrote:
>
>
> On 1/11/24 8:59 PM, Alexei Starovoitov wrote:
> > On Thu, Jan 11, 2024 at 8:17 PM Yonghong Song <yonghong.song@linux.dev> wrote:
> >> Building the kernel with latest llvm18, I hit the following error:
> >>
> >> /home/yhs/work/bpf-next/kernel/bpf/verifier.c:4383:13: error: unused function '__is_scalar_unbounded' [-Werror,-Wunused-function]
> >> 4383 | static bool __is_scalar_unbounded(struct bpf_reg_state *reg)
> >> | ^~~~~~~~~~~~~~~~~~~~~
> >> 1 error generated.
> >>
> >> Patches [1] and [2] are in the same patch set. Patch [1] removed
> >> the usage of __is_scalar_unbounded(), and patch [2] re-introduced
> >> the usage of the function. Currently patch [1] is merged into
> >> bpf-next while patch [2] does not, hence the above compilation
> >> error is triggered.
> >>
> >> To fix the compilation failure, let us temporarily make
> >> __is_scalar_unbounded() not accessible through macro '#if 0'.
> >> It can be re-introduced later when [2] is ready to merge.
> >>
> >> [1] https://lore.kernel.org/bpf/20240108205209.838365-11-maxtram95@gmail.com/
> >> [2] https://lore.kernel.org/bpf/20240108205209.838365-15-maxtram95@gmail.com/
> > Ouch. Sorry. This interaction between patches was unexpected.
> > Instead of this particular if 0 patch, is there a way to amend pushed
> > patches to avoid this issue?
>
> Another option is that in merged patch [1] removing the function __is_scalar_unbounded().
> And the function can be re-introduced later if needed.
Right. That will work, but it's not a tiny function.
So it's a code churn to remove it in a commit just to add it back
a few commits later.
To fix the build I dropped the last two commits,
but the issue remains.
If they're resend in the same shape later they will
re-introduce a bisect issue. Hence the question,
how we can tweak the patch "bpf: Track spilled unbounded scalars"
so it doesn't leave behind an unused static function.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-01-12 6:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-12 4:16 [PATCH bpf-next] bpf: Fix a 'unused function' compilation error Yonghong Song
2024-01-12 4:59 ` Alexei Starovoitov
2024-01-12 5:29 ` Yonghong Song
2024-01-12 6:02 ` Alexei Starovoitov
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.