Message ID | 20250412170626.3638516-3-kafai.wan@hotmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | bpf: Allow access to const void pointer arguments in tracing programs | expand |
On Sun, Apr 13, 2025 at 01:06:26AM +0800, KaFai Wan wrote: > Adding verifier test for accessing const void pointer argument in > tracing programs. > > The test program loads 2nd argument of kfree tp_btf which is > const void pointer and checks that verifier allows that. > > Signed-off-by: KaFai Wan <kafai.wan@hotmail.com> > --- > .../selftests/bpf/progs/verifier_btf_ctx_access.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c > index 28b939572cda..a6cec7f73dcd 100644 > --- a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c > +++ b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c > @@ -65,4 +65,13 @@ __naked void ctx_access_u32_pointer_reject_8(void) > " ::: __clobber_all); > } > > +SEC("tp_btf/kfree") > +__description("btf_ctx_access const void pointer accept") > +int ctx_access_const_void_pointer_accept(void) > +{ > + /* load 2nd argument value (const void pointer) */ > + asm volatile ("r2 = *(u64 *)(r1 + 8); "); I think we should follow formatting of other tests in the file, a do smth like: asm volatile (" \ r2 = *(u64 *)(r1 + 8); "); /* load 2nd argument value (const void pointer) */\ ... thanks, jirka > + return 0; > +} > + > char _license[] SEC("license") = "GPL"; > -- > 2.43.0 >
On Mon, Apr 14, 2025 at 6:35 PM Jiri Olsa <olsajiri@gmail.com> wrote: > > On Sun, Apr 13, 2025 at 01:06:26AM +0800, KaFai Wan wrote: > > Adding verifier test for accessing const void pointer argument in > > tracing programs. > > > > The test program loads 2nd argument of kfree tp_btf which is > > const void pointer and checks that verifier allows that. > > > > Signed-off-by: KaFai Wan <kafai.wan@hotmail.com> > > --- > > .../selftests/bpf/progs/verifier_btf_ctx_access.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c > > index 28b939572cda..a6cec7f73dcd 100644 > > --- a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c > > +++ b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c > > @@ -65,4 +65,13 @@ __naked void ctx_access_u32_pointer_reject_8(void) > > " ::: __clobber_all); > > } > > > > +SEC("tp_btf/kfree") > > +__description("btf_ctx_access const void pointer accept") > > +int ctx_access_const_void_pointer_accept(void) > > +{ > > + /* load 2nd argument value (const void pointer) */ > > + asm volatile ("r2 = *(u64 *)(r1 + 8); "); > > I think we should follow formatting of other tests in the file, > a do smth like: > > asm volatile (" \ > r2 = *(u64 *)(r1 + 8); "); /* load 2nd argument value (const void pointer) */\ > ... I will fix it. and I find out the kernel does not support test_run of tp_btf, I will change to fentry. > > thanks, > jirka > > > > + return 0; > > +} > > + > > char _license[] SEC("license") = "GPL"; > > -- > > 2.43.0 > > thanks, kafai
diff --git a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c index 28b939572cda..a6cec7f73dcd 100644 --- a/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c +++ b/tools/testing/selftests/bpf/progs/verifier_btf_ctx_access.c @@ -65,4 +65,13 @@ __naked void ctx_access_u32_pointer_reject_8(void) " ::: __clobber_all); } +SEC("tp_btf/kfree") +__description("btf_ctx_access const void pointer accept") +int ctx_access_const_void_pointer_accept(void) +{ + /* load 2nd argument value (const void pointer) */ + asm volatile ("r2 = *(u64 *)(r1 + 8); "); + return 0; +} + char _license[] SEC("license") = "GPL";
Adding verifier test for accessing const void pointer argument in tracing programs. The test program loads 2nd argument of kfree tp_btf which is const void pointer and checks that verifier allows that. Signed-off-by: KaFai Wan <kafai.wan@hotmail.com> --- .../selftests/bpf/progs/verifier_btf_ctx_access.c | 9 +++++++++ 1 file changed, 9 insertions(+)