Re: [PATCH bpf-next v3 3/3] selftests/bpf: add testcase for FENTRY/FEXIT with 6+ arguments

From: Alexei Starovoitov
Date: Wed Jun 07 2023 - 16:10:17 EST


On Wed, Jun 07, 2023 at 08:59:11PM +0800, menglong8.dong@xxxxxxxxx wrote:
> From: Menglong Dong <imagedong@xxxxxxxxxxx>
>
> Add test9/test10 in fexit_test.c and fentry_test.c to test the fentry
> and fexit whose target function have 7/12 arguments.
>
> Correspondingly, add bpf_testmod_fentry_test7() and
> bpf_testmod_fentry_test12() to bpf_testmod.c
>
> And the testcases passed:
>
> ./test_progs -t fexit
> Summary: 5/12 PASSED, 0 SKIPPED, 0 FAILED
>
> ./test_progs -t fentry
> Summary: 3/0 PASSED, 0 SKIPPED, 0 FAILED
>
> Reviewed-by: Jiang Biao <benbjiang@xxxxxxxxxxx>
> Signed-off-by: Menglong Dong <imagedong@xxxxxxxxxxx>
> ---
> v3:
> - move bpf_fentry_test{7,12} to bpf_testmod.c and rename them to
> bpf_testmod_fentry_test{7,12} meanwhile
> - get return value by bpf_get_func_ret() in
> "fexit/bpf_testmod_fentry_test12", as we don't change ___bpf_ctx_cast()
> in this version
> ---
> .../selftests/bpf/bpf_testmod/bpf_testmod.c | 19 ++++++++++-
> .../selftests/bpf/prog_tests/fentry_fexit.c | 4 ++-
> .../selftests/bpf/prog_tests/fentry_test.c | 2 ++
> .../selftests/bpf/prog_tests/fexit_test.c | 2 ++
> .../testing/selftests/bpf/progs/fentry_test.c | 21 ++++++++++++
> .../testing/selftests/bpf/progs/fexit_test.c | 33 +++++++++++++++++++
> 6 files changed, 79 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c b/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c
> index cf216041876c..66615fdbe3df 100644
> --- a/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c
> +++ b/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c
> @@ -191,6 +191,19 @@ noinline int bpf_testmod_fentry_test3(char a, int b, u64 c)
> return a + b + c;
> }
>
> +noinline int bpf_testmod_fentry_test7(u64 a, void *b, short c, int d,
> + void *e, u64 f, u64 g)
> +{
> + return a + (long)b + c + d + (long)e + f + g;
> +}
> +
> +noinline int bpf_testmod_fentry_test12(u64 a, void *b, short c, int d,
> + void *e, u64 f, u64 g, u64 h,
> + u64 i, u64 j, u64 k, u64 l)

Please switch args to a combination of u8,u16,u32,u64.
u64 only args might hide bugs.