* [PATCH 5.15.y] Revert "selftests/bpf: Test tail call counting with bpf2bpf and data on stack"
@ 2024-02-03 1:12 Samasth Norway Ananda
2024-02-21 10:59 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Samasth Norway Ananda @ 2024-02-03 1:12 UTC (permalink / raw)
To: stable; +Cc: jakub, daniel, samasth.norway.ananda, alan.maguire
This reverts commit 3eefb2fbf4ec1c1ff239b8b65e6e78aae335e4a6.
libbpf support for "tc" progs doesn't exist for the linux-5.15.y tree.
This commit was backported too far back in upstream, to a kernel where
the libbpf support was not there for the test.
Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
Conflicts:
tools/testing/selftests/bpf/prog_tests/tailcalls.c
conflict was caused due to code overlap with the commit
b06bde1c5ed6 ("selftests/bpf: Correct map_fd to data_fd in tailcalls")
in the function test_tailcall_bpf2bpf_6(). As this function is
removed by the revert conflict is resolved.
---
This was identified when we ran bpf selftest.
$ cd tools/testing/selftests/bpf
$ make test_progs
$ ./test_progs --name=ksyms_module
#137/1 tailcalls/tailcall_1:OK
#137/2 tailcalls/tailcall_2:OK
#137/3 tailcalls/tailcall_3:OK
#137/4 tailcalls/tailcall_4:OK
#137/5 tailcalls/tailcall_5:OK
#137/6 tailcalls/tailcall_bpf2bpf_1:OK
#137/7 tailcalls/tailcall_bpf2bpf_2:OK
#137/8 tailcalls/tailcall_bpf2bpf_3:OK
#137/9 tailcalls/tailcall_bpf2bpf_4:OK
#137/10 tailcalls/tailcall_bpf2bpf_5:OK
libbpf: prog 'classifier_0': missing BPF prog type, check ELF section name 'tc'
libbpf: failed to load program 'classifier_0'
libbpf: failed to load object 'tailcall_bpf2bpf6'
libbpf: failed to load BPF skeleton 'tailcall_bpf2bpf6': -22
test_tailcall_bpf2bpf_6:FAIL:open and load unexpected error: -22
#137/11 tailcalls/tailcall_bpf2bpf_6:FAIL
#137 tailcalls:FAIL
Summary: 0/10 PASSED, 0 SKIPPED, 2 FAILED
---
.../selftests/bpf/prog_tests/tailcalls.c | 55 -------------------
.../selftests/bpf/progs/tailcall_bpf2bpf6.c | 42 --------------
2 files changed, 97 deletions(-)
delete mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c
diff --git a/tools/testing/selftests/bpf/prog_tests/tailcalls.c b/tools/testing/selftests/bpf/prog_tests/tailcalls.c
index 28e30ad4a30e..2e3e525e8579 100644
--- a/tools/testing/selftests/bpf/prog_tests/tailcalls.c
+++ b/tools/testing/selftests/bpf/prog_tests/tailcalls.c
@@ -810,59 +810,6 @@ static void test_tailcall_bpf2bpf_4(bool noise)
bpf_object__close(obj);
}
-#include "tailcall_bpf2bpf6.skel.h"
-
-/* Tail call counting works even when there is data on stack which is
- * not aligned to 8 bytes.
- */
-static void test_tailcall_bpf2bpf_6(void)
-{
- struct tailcall_bpf2bpf6 *obj;
- int err, map_fd, prog_fd, main_fd, data_fd, i, val;
- LIBBPF_OPTS(bpf_test_run_opts, topts,
- .data_in = &pkt_v4,
- .data_size_in = sizeof(pkt_v4),
- .repeat = 1,
- );
-
- obj = tailcall_bpf2bpf6__open_and_load();
- if (!ASSERT_OK_PTR(obj, "open and load"))
- return;
-
- main_fd = bpf_program__fd(obj->progs.entry);
- if (!ASSERT_GE(main_fd, 0, "entry prog fd"))
- goto out;
-
- map_fd = bpf_map__fd(obj->maps.jmp_table);
- if (!ASSERT_GE(map_fd, 0, "jmp_table map fd"))
- goto out;
-
- prog_fd = bpf_program__fd(obj->progs.classifier_0);
- if (!ASSERT_GE(prog_fd, 0, "classifier_0 prog fd"))
- goto out;
-
- i = 0;
- err = bpf_map_update_elem(map_fd, &i, &prog_fd, BPF_ANY);
- if (!ASSERT_OK(err, "jmp_table map update"))
- goto out;
-
- err = bpf_prog_test_run_opts(main_fd, &topts);
- ASSERT_OK(err, "entry prog test run");
- ASSERT_EQ(topts.retval, 0, "tailcall retval");
-
- data_fd = bpf_map__fd(obj->maps.bss);
- if (!ASSERT_GE(data_fd, 0, "bss map fd"))
- goto out;
-
- i = 0;
- err = bpf_map_lookup_elem(data_fd, &i, &val);
- ASSERT_OK(err, "bss map lookup");
- ASSERT_EQ(val, 1, "done flag is set");
-
-out:
- tailcall_bpf2bpf6__destroy(obj);
-}
-
void test_tailcalls(void)
{
if (test__start_subtest("tailcall_1"))
@@ -885,6 +832,4 @@ void test_tailcalls(void)
test_tailcall_bpf2bpf_4(false);
if (test__start_subtest("tailcall_bpf2bpf_5"))
test_tailcall_bpf2bpf_4(true);
- if (test__start_subtest("tailcall_bpf2bpf_6"))
- test_tailcall_bpf2bpf_6();
}
diff --git a/tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c b/tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c
deleted file mode 100644
index 41ce83da78e8..000000000000
--- a/tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c
+++ /dev/null
@@ -1,42 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/bpf.h>
-#include <bpf/bpf_helpers.h>
-
-#define __unused __attribute__((unused))
-
-struct {
- __uint(type, BPF_MAP_TYPE_PROG_ARRAY);
- __uint(max_entries, 1);
- __uint(key_size, sizeof(__u32));
- __uint(value_size, sizeof(__u32));
-} jmp_table SEC(".maps");
-
-int done = 0;
-
-SEC("tc")
-int classifier_0(struct __sk_buff *skb __unused)
-{
- done = 1;
- return 0;
-}
-
-static __noinline
-int subprog_tail(struct __sk_buff *skb)
-{
- /* Don't propagate the constant to the caller */
- volatile int ret = 1;
-
- bpf_tail_call_static(skb, &jmp_table, 0);
- return ret;
-}
-
-SEC("tc")
-int entry(struct __sk_buff *skb)
-{
- /* Have data on stack which size is not a multiple of 8 */
- volatile char arr[1] = {};
-
- return subprog_tail(skb);
-}
-
-char __license[] SEC("license") = "GPL";
--
2.42.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH 5.15.y] Revert "selftests/bpf: Test tail call counting with bpf2bpf and data on stack"
2024-02-03 1:12 [PATCH 5.15.y] Revert "selftests/bpf: Test tail call counting with bpf2bpf and data on stack" Samasth Norway Ananda
@ 2024-02-21 10:59 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2024-02-21 10:59 UTC (permalink / raw)
To: Samasth Norway Ananda; +Cc: stable, jakub, daniel, alan.maguire
On Fri, Feb 02, 2024 at 05:12:28PM -0800, Samasth Norway Ananda wrote:
> This reverts commit 3eefb2fbf4ec1c1ff239b8b65e6e78aae335e4a6.
>
> libbpf support for "tc" progs doesn't exist for the linux-5.15.y tree.
> This commit was backported too far back in upstream, to a kernel where
> the libbpf support was not there for the test.
>
> Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
>
> Conflicts:
> tools/testing/selftests/bpf/prog_tests/tailcalls.c
> conflict was caused due to code overlap with the commit
> b06bde1c5ed6 ("selftests/bpf: Correct map_fd to data_fd in tailcalls")
> in the function test_tailcall_bpf2bpf_6(). As this function is
> removed by the revert conflict is resolved.
Now qeued up, thanks.
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-02-21 10:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-03 1:12 [PATCH 5.15.y] Revert "selftests/bpf: Test tail call counting with bpf2bpf and data on stack" Samasth Norway Ananda
2024-02-21 10:59 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox