From: menglong8.dong@gmail.com
To: olsajiri@gmail.com
Cc: davem@davemloft.net, dsahern@kernel.org, ast@kernel.org,
daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev,
song@kernel.org, yhs@fb.com, john.fastabend@gmail.com,
kpsingh@kernel.org, sdf@google.com, haoluo@google.com,
jolsa@kernel.org, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org,
hpa@zytor.com, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, mykolal@fb.com, shuah@kernel.org,
benbjiang@tencent.com, iii@linux.ibm.com, imagedong@tencent.com,
xukuohai@huawei.com, chantr4@gmail.com, zwisler@google.com,
eddyz87@gmail.com, netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: [PATCH bpf-next v2 5/5] selftests/bpf: add testcase for FENTRY/FEXIT with 6+ arguments
Date: Fri, 2 Jun 2023 14:59:58 +0800 [thread overview]
Message-ID: <20230602065958.2869555-6-imagedong@tencent.com> (raw)
In-Reply-To: <20230602065958.2869555-1-imagedong@tencent.com>
From: Menglong Dong <imagedong@tencent.com>
Add test7/test12/test14 in fexit_test.c and fentry_test.c to test the
fentry and fexit whose target function have 7/12/14 arguments.
And the testcases passed:
./test_progs -t fexit
$71 fentry_fexit:OK
$73/1 fexit_bpf2bpf/target_no_callees:OK
$73/2 fexit_bpf2bpf/target_yes_callees:OK
$73/3 fexit_bpf2bpf/func_replace:OK
$73/4 fexit_bpf2bpf/func_replace_verify:OK
$73/5 fexit_bpf2bpf/func_sockmap_update:OK
$73/6 fexit_bpf2bpf/func_replace_return_code:OK
$73/7 fexit_bpf2bpf/func_map_prog_compatibility:OK
$73/8 fexit_bpf2bpf/func_replace_multi:OK
$73/9 fexit_bpf2bpf/fmod_ret_freplace:OK
$73/10 fexit_bpf2bpf/func_replace_global_func:OK
$73/11 fexit_bpf2bpf/fentry_to_cgroup_bpf:OK
$73/12 fexit_bpf2bpf/func_replace_progmap:OK
$73 fexit_bpf2bpf:OK
$74 fexit_sleep:OK
$75 fexit_stress:OK
$76 fexit_test:OK
Summary: 5/12 PASSED, 0 SKIPPED, 0 FAILED
./test_progs -t fentry
$71 fentry_fexit:OK
$72 fentry_test:OK
$140 module_fentry_shadow:OK
Summary: 3/0 PASSED, 0 SKIPPED, 0 FAILED
Reviewed-by: Jiang Biao <benbjiang@tencent.com>
Signed-off-by: Menglong Dong <imagedong@tencent.com>
---
net/bpf/test_run.c | 30 +++++++++++++++-
.../testing/selftests/bpf/progs/fentry_test.c | 34 ++++++++++++++++++
.../testing/selftests/bpf/progs/fexit_test.c | 35 +++++++++++++++++++
3 files changed, 98 insertions(+), 1 deletion(-)
diff --git a/net/bpf/test_run.c b/net/bpf/test_run.c
index c73f246a706f..e12a72311eca 100644
--- a/net/bpf/test_run.c
+++ b/net/bpf/test_run.c
@@ -536,6 +536,27 @@ int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f)
return a + (long)b + c + d + (long)e + f;
}
+noinline int bpf_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_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)
+{
+ return a + (long)b + c + d + (long)e + f + g + h + i + j + k + l;
+}
+
+noinline int bpf_fentry_test14(u64 a, void *b, short c, int d, void *e,
+ u64 f, u64 g, u64 h, u64 i, u64 j,
+ u64 k, u64 l, u64 m, u64 n)
+{
+ return a + (long)b + c + d + (long)e + f + g + h + i + j + k + l +
+ m + n;
+}
+
struct bpf_fentry_test_t {
struct bpf_fentry_test_t *a;
};
@@ -657,7 +678,14 @@ int bpf_prog_test_run_tracing(struct bpf_prog *prog,
bpf_fentry_test6(16, (void *)17, 18, 19, (void *)20, 21) != 111 ||
bpf_fentry_test_ptr1((struct bpf_fentry_test_t *)0) != 0 ||
bpf_fentry_test_ptr2(&arg) != 0 ||
- bpf_fentry_test_ptr3(&retval) != 0)
+ bpf_fentry_test_ptr3(&retval) != 0 ||
+ bpf_fentry_test7(16, (void *)17, 18, 19, (void *)20,
+ 21, 22) != 133 ||
+ bpf_fentry_test12(16, (void *)17, 18, 19, (void *)20,
+ 21, 22, 23, 24, 25, 26, 27) != 258 ||
+ bpf_fentry_test14(16, (void *)17, 18, 19, (void *)20,
+ 21, 22, 23, 24, 25, 26, 27, 28,
+ 29) != 315)
goto out;
break;
case BPF_MODIFY_RETURN:
diff --git a/tools/testing/selftests/bpf/progs/fentry_test.c b/tools/testing/selftests/bpf/progs/fentry_test.c
index 558a5f1d3d5c..0666a907f7ea 100644
--- a/tools/testing/selftests/bpf/progs/fentry_test.c
+++ b/tools/testing/selftests/bpf/progs/fentry_test.c
@@ -56,6 +56,40 @@ int BPF_PROG(test6, __u64 a, void *b, short c, int d, void * e, __u64 f)
return 0;
}
+__u64 test7_result = 0;
+SEC("fentry/bpf_fentry_test7")
+int BPF_PROG(test7, __u64 a, void *b, short c, int d, void *e, __u64 f,
+ __u64 g)
+{
+ test7_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
+ e == (void *)20 && f == 21 && g == 22;
+ return 0;
+}
+
+__u64 test12_result = 0;
+SEC("fentry/bpf_fentry_test12")
+int BPF_PROG(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)
+{
+ test12_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
+ e == (void *)20 && f == 21 && g == 22 && h == 23 &&
+ i == 24 && j == 25 && k == 26 && l == 27;
+ return 0;
+}
+
+__u64 test14_result = 0;
+SEC("fentry/bpf_fentry_test14")
+int BPF_PROG(test14, __u64 a, void *b, short c, int d, void *e, __u64 f,
+ __u64 g, __u64 h, __u64 i, __u64 j, __u64 k, __u64 l,
+ __u64 m, __u64 n)
+{
+ test14_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
+ e == (void *)20 && f == 21 && g == 22 && h == 23 &&
+ i == 24 && j == 25 && k == 26 && l == 27 && m == 28 &&
+ n == 29;
+ return 0;
+}
+
struct bpf_fentry_test_t {
struct bpf_fentry_test_t *a;
};
diff --git a/tools/testing/selftests/bpf/progs/fexit_test.c b/tools/testing/selftests/bpf/progs/fexit_test.c
index f57886e6d918..1b9102ad1418 100644
--- a/tools/testing/selftests/bpf/progs/fexit_test.c
+++ b/tools/testing/selftests/bpf/progs/fexit_test.c
@@ -57,6 +57,41 @@ int BPF_PROG(test6, __u64 a, void *b, short c, int d, void *e, __u64 f, int ret)
return 0;
}
+__u64 test7_result = 0;
+SEC("fexit/bpf_fentry_test7")
+int BPF_PROG(test7, __u64 a, void *b, short c, int d, void *e, __u64 f,
+ __u64 g, int ret)
+{
+ test7_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
+ e == (void *)20 && f == 21 && g == 22 && ret == 133;
+ return 0;
+}
+
+__u64 test12_result = 0;
+SEC("fexit/bpf_fentry_test12")
+int BPF_PROG(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,
+ int ret)
+{
+ test12_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
+ e == (void *)20 && f == 21 && g == 22 && h == 23 &&
+ i == 24 && j == 25 && k == 26 && l == 27 && ret == 258;
+ return 0;
+}
+
+__u64 test14_result = 0;
+SEC("fexit/bpf_fentry_test14")
+int BPF_PROG(test14, __u64 a, void *b, short c, int d, void *e, __u64 f,
+ __u64 g, __u64 h, __u64 i, __u64 j, __u64 k, __u64 l,
+ __u64 m, __u64 n, int ret)
+{
+ test14_result = a == 16 && b == (void *)17 && c == 18 && d == 19 &&
+ e == (void *)20 && f == 21 && g == 22 && h == 23 &&
+ i == 24 && j == 25 && k == 26 && l == 27 && m == 28 &&
+ n == 29 && ret == 315;
+ return 0;
+}
+
struct bpf_fentry_test_t {
struct bpf_fentry_test *a;
};
--
2.40.1
next prev parent reply other threads:[~2023-06-02 7:03 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-02 6:59 [PATCH bpf-next v2 0/5] bpf, x86: allow function arguments up to 14 for TRACING menglong8.dong
2023-06-02 6:59 ` [PATCH bpf-next v2 1/5] bpf: make MAX_BPF_FUNC_ARGS 14 menglong8.dong
2023-06-02 18:17 ` Alexei Starovoitov
2023-06-05 2:49 ` Menglong Dong
2023-06-03 14:13 ` Simon Horman
2023-06-05 2:54 ` Menglong Dong
2023-06-02 6:59 ` [PATCH bpf-next v2 2/5] bpf, x86: allow function arguments up to 14 for TRACING menglong8.dong
2023-06-02 7:40 ` Menglong Dong
2023-06-02 18:31 ` Alexei Starovoitov
2023-06-05 2:40 ` Menglong Dong
2023-06-05 20:10 ` Jiri Olsa
2023-06-06 2:02 ` Menglong Dong
2023-06-02 6:59 ` [PATCH bpf-next v2 3/5] libbpf: make BPF_PROG support 15 function arguments menglong8.dong
2023-06-02 6:59 ` [PATCH bpf-next v2 4/5] selftests/bpf: rename bpf_fentry_test{7,8,9} to bpf_fentry_test_ptr* menglong8.dong
2023-06-02 9:44 ` Menglong Dong
2023-06-02 6:59 ` menglong8.dong [this message]
2023-06-02 8:24 ` [PATCH bpf-next v2 5/5] selftests/bpf: add testcase for FENTRY/FEXIT with 6+ arguments Ilya Leoshkevich
2023-06-02 8:47 ` Menglong Dong
2023-06-02 18:32 ` Alexei Starovoitov
2023-06-05 2:55 ` Menglong Dong
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=20230602065958.2869555-6-imagedong@tencent.com \
--to=menglong8.dong@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=benbjiang@tencent.com \
--cc=bp@alien8.de \
--cc=bpf@vger.kernel.org \
--cc=chantr4@gmail.com \
--cc=daniel@iogearbox.net \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=eddyz87@gmail.com \
--cc=edumazet@google.com \
--cc=haoluo@google.com \
--cc=hpa@zytor.com \
--cc=iii@linux.ibm.com \
--cc=imagedong@tencent.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=mingo@redhat.com \
--cc=mykolal@fb.com \
--cc=netdev@vger.kernel.org \
--cc=olsajiri@gmail.com \
--cc=pabeni@redhat.com \
--cc=sdf@google.com \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xukuohai@huawei.com \
--cc=yhs@fb.com \
--cc=zwisler@google.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;
as well as URLs for NNTP newsgroup(s).