Message ID | 20240222161218.118394-1-roxana.nicolescu@canonical.com |
---|---|
Headers | show |
Series | Fix bpf selftests build failure after v5.15.139 update | expand |
On Thu, Feb 22, 2024 at 05:12:17PM +0100, Roxana Nicolescu wrote: > BugLink: https://bugs.launchpad.net/bugs/2054567 > > Sru justification > > [Impact] > Upstream v5.15.139 (#lp2049432) brought commit > "selftests/bpf: Test tail call counting with bpf2bpf and data on stack" > that affects one of the bpf kselftests. Because LIBBPF_OPTS macro does not > exist, it does not compile. Error is shown below. > > [Fix] > Cherry-pick commit "libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS" > > [Test] > This should be solved soon, but compileselftests debian rule does not > compile bpf selftests. > I tested it by using our regression testing tooling, but same results can > be achieved by running: > $ make -C linux/tools/testing/selftests TARGETS=bpf SKIP_TARGETS= clean all KDIR=/usr/src/linux-headers-5.15.0-<version>-generic > from the linux tree directory > > Without the fix, it fails to compile: > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c: In function ‘test_tailcall_bpf2bpf_6’: > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:9: warning: implicit declaration of function ‘LIBBPF_OPTS’; did you mean ‘LIBBPF_API’? [-Wimplicit-function-declaration] > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~~~~~~~ > | LIBBPF_API > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21: error: ‘bpf_test_run_opts’ undeclared (first use in this function) > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~~~~~~~~~~~~~ > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21: note: each undeclared identifier is reported only once for each function it appears in > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:40: error: ‘topts’ undeclared (first use in this function) > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~ > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:823:17: error: expected expression before ‘.’ token > 823 | .data_in = &pkt_v4, > | ^ > make[1]: *** [Makefile:471: /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/tailcalls.test.o] Error 1 > make: *** [Makefile:172: all] Error 2 > > With the fix, it compiles. > > [Regression potential] > The only place this is being used is selftests, so the risk is very low. > > Andrii Nakryiko (1): > libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS > > tools/lib/bpf/bpf.h | 1 + > tools/lib/bpf/libbpf_common.h | 2 +- > tools/lib/bpf/libbpf_legacy.h | 1 + > 3 files changed, 3 insertions(+), 1 deletion(-) > > -- > 2.34.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team Acked-by: Manuel Diewald <manuel.diewald@canonical.com>
On 22/02/2024 17:12, Roxana Nicolescu wrote: > BugLink: https://bugs.launchpad.net/bugs/2054567 > > Sru justification > > [Impact] > Upstream v5.15.139 (#lp2049432) brought commit > "selftests/bpf: Test tail call counting with bpf2bpf and data on stack" > that affects one of the bpf kselftests. Because LIBBPF_OPTS macro does not > exist, it does not compile. Error is shown below. > > [Fix] > Cherry-pick commit "libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS" > > [Test] > This should be solved soon, but compileselftests debian rule does not > compile bpf selftests. > I tested it by using our regression testing tooling, but same results can > be achieved by running: > $ make -C linux/tools/testing/selftests TARGETS=bpf SKIP_TARGETS= clean all KDIR=/usr/src/linux-headers-5.15.0-<version>-generic > from the linux tree directory > > Without the fix, it fails to compile: > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c: In function ‘test_tailcall_bpf2bpf_6’: > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:9: warning: implicit declaration of function ‘LIBBPF_OPTS’; did you mean ‘LIBBPF_API’? [-Wimplicit-function-declaration] > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~~~~~~~ > | LIBBPF_API > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21: error: ‘bpf_test_run_opts’ undeclared (first use in this function) > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~~~~~~~~~~~~~ > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21: note: each undeclared identifier is reported only once for each function it appears in > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:40: error: ‘topts’ undeclared (first use in this function) > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~ > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:823:17: error: expected expression before ‘.’ token > 823 | .data_in = &pkt_v4, > | ^ > make[1]: *** [Makefile:471: /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/tailcalls.test.o] Error 1 > make: *** [Makefile:172: all] Error 2 > > With the fix, it compiles. > > [Regression potential] > The only place this is being used is selftests, so the risk is very low. > > Andrii Nakryiko (1): > libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS > > tools/lib/bpf/bpf.h | 1 + > tools/lib/bpf/libbpf_common.h | 2 +- > tools/lib/bpf/libbpf_legacy.h | 1 + > 3 files changed, 3 insertions(+), 1 deletion(-) > The test changes have been reverted in 5.15.149. I'll drop this and just come back with the revert commit.
On 2/22/24 09:12, Roxana Nicolescu wrote: > BugLink: https://bugs.launchpad.net/bugs/2054567 > > Sru justification > > [Impact] > Upstream v5.15.139 (#lp2049432) brought commit > "selftests/bpf: Test tail call counting with bpf2bpf and data on stack" > that affects one of the bpf kselftests. Because LIBBPF_OPTS macro does not > exist, it does not compile. Error is shown below. > > [Fix] > Cherry-pick commit "libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS" > > [Test] > This should be solved soon, but compileselftests debian rule does not > compile bpf selftests. > I tested it by using our regression testing tooling, but same results can > be achieved by running: > $ make -C linux/tools/testing/selftests TARGETS=bpf SKIP_TARGETS= clean all KDIR=/usr/src/linux-headers-5.15.0-<version>-generic > from the linux tree directory > > Without the fix, it fails to compile: > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c: In function ‘test_tailcall_bpf2bpf_6’: > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:9: warning: implicit declaration of function ‘LIBBPF_OPTS’; did you mean ‘LIBBPF_API’? [-Wimplicit-function-declaration] > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~~~~~~~ > | LIBBPF_API > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21: error: ‘bpf_test_run_opts’ undeclared (first use in this function) > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~~~~~~~~~~~~~ > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:21: note: each undeclared identifier is reported only once for each function it appears in > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:822:40: error: ‘topts’ undeclared (first use in this function) > 822 | LIBBPF_OPTS(bpf_test_run_opts, topts, > | ^~~~~ > /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/prog_tests/tailcalls.c:823:17: error: expected expression before ‘.’ token > 823 | .data_in = &pkt_v4, > | ^ > make[1]: *** [Makefile:471: /root/autotest/client/tmp/ubuntu_bpf/src/linux/tools/testing/selftests/bpf/tailcalls.test.o] Error 1 > make: *** [Makefile:172: all] Error 2 > > With the fix, it compiles. > > [Regression potential] > The only place this is being used is selftests, so the risk is very low. > > Andrii Nakryiko (1): > libbpf: Rename DECLARE_LIBBPF_OPTS into LIBBPF_OPTS > > tools/lib/bpf/bpf.h | 1 + > tools/lib/bpf/libbpf_common.h | 2 +- > tools/lib/bpf/libbpf_legacy.h | 1 + > 3 files changed, 3 insertions(+), 1 deletion(-) > Acked-by: Tim Gardner <tim.gardner@canonical.com>