diff options
author | Kumar Kartikeya Dwivedi <memxor@gmail.com> | 2025-03-01 18:18:46 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2025-03-15 21:48:25 +0300 |
commit | 72ed076abf54cce939f706d673416f954ea47bcd (patch) | |
tree | 6b87bf2b6ca50dc4d227dd7453be85a5bc5caf5a /tools/testing/selftests/bpf/progs/summarization_freplace.c | |
parent | b2bb70343477859736920539f43f611d7d2a35a6 (diff) | |
download | linux-72ed076abf54cce939f706d673416f954ea47bcd.tar.xz |
selftests/bpf: Add tests for extending sleepable global subprogs
Add tests for freplace behavior with the combination of sleepable
and non-sleepable global subprogs. The changes_pkt_data selftest
did all the hardwork, so simply rename it and include new support
for more summarization tests for might_sleep bit.
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20250301151846.1552362-4-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/progs/summarization_freplace.c')
-rw-r--r-- | tools/testing/selftests/bpf/progs/summarization_freplace.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/progs/summarization_freplace.c b/tools/testing/selftests/bpf/progs/summarization_freplace.c new file mode 100644 index 000000000000..935f00e0e9ea --- /dev/null +++ b/tools/testing/selftests/bpf/progs/summarization_freplace.c @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include <vmlinux.h> +#include <bpf/bpf_helpers.h> + +SEC("?freplace") +long changes_pkt_data(struct __sk_buff *sk) +{ + return bpf_skb_pull_data(sk, 0); +} + +SEC("?freplace") +long does_not_change_pkt_data(struct __sk_buff *sk) +{ + return 0; +} + +SEC("?freplace") +long might_sleep(struct pt_regs *ctx) +{ + int i; + + bpf_copy_from_user(&i, sizeof(i), NULL); + return i; +} + +SEC("?freplace") +long does_not_sleep(struct pt_regs *ctx) +{ + return 0; +} + +char _license[] SEC("license") = "GPL"; |