* [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer [not found] <20230320005258.1428043-1-sashal@kernel.org> @ 2023-03-20 0:52 ` Sasha Levin 2023-03-20 15:31 ` Lorenz Bauer 0 siblings, 1 reply; 11+ messages in thread From: Sasha Levin @ 2023-03-20 0:52 UTC (permalink / raw) To: linux-kernel, stable Cc: Lorenz Bauer, Lorenz Bauer, Martin KaFai Lau, Sasha Levin, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest From: Lorenz Bauer <lorenz.bauer@isovalent.com> [ Upstream commit dfdd608c3b365f0fd49d7e13911ebcde06b9865b ] Add a regression test that ensures that a VAR pointing at a modifier which follows a PTR (or STRUCT or ARRAY) is resolved correctly by the datasec validator. Signed-off-by: Lorenz Bauer <lmb@isovalent.com> Link: https://lore.kernel.org/r/20230306112138.155352-3-lmb@isovalent.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> --- tools/testing/selftests/bpf/prog_tests/btf.c | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c index de1b5b9eb93a8..d8d1292e73b53 100644 --- a/tools/testing/selftests/bpf/prog_tests/btf.c +++ b/tools/testing/selftests/bpf/prog_tests/btf.c @@ -879,6 +879,34 @@ static struct btf_raw_test raw_tests[] = { .btf_load_err = true, .err_str = "Invalid elem", }, +{ + .descr = "var after datasec, ptr followed by modifier", + .raw_types = { + /* .bss section */ /* [1] */ + BTF_TYPE_ENC(NAME_TBD, BTF_INFO_ENC(BTF_KIND_DATASEC, 0, 2), + sizeof(void*)+4), + BTF_VAR_SECINFO_ENC(4, 0, sizeof(void*)), + BTF_VAR_SECINFO_ENC(6, sizeof(void*), 4), + /* int */ /* [2] */ + BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), + /* int* */ /* [3] */ + BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 2), + BTF_VAR_ENC(NAME_TBD, 3, 0), /* [4] */ + /* const int */ /* [5] */ + BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_CONST, 0, 0), 2), + BTF_VAR_ENC(NAME_TBD, 5, 0), /* [6] */ + BTF_END_RAW, + }, + .str_sec = "\0a\0b\0c\0", + .str_sec_size = sizeof("\0a\0b\0c\0"), + .map_type = BPF_MAP_TYPE_ARRAY, + .map_name = ".bss", + .key_size = sizeof(int), + .value_size = sizeof(void*)+4, + .key_type_id = 0, + .value_type_id = 1, + .max_entries = 1, +}, /* Test member exceeds the size of struct. * * struct A { -- 2.39.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-03-20 0:52 ` [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer Sasha Levin @ 2023-03-20 15:31 ` Lorenz Bauer 2023-03-20 15:48 ` Greg KH 0 siblings, 1 reply; 11+ messages in thread From: Lorenz Bauer @ 2023-03-20 15:31 UTC (permalink / raw) To: Sasha Levin Cc: linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Mon, Mar 20, 2023 at 12:53 AM Sasha Levin <sashal@kernel.org> wrote: > > From: Lorenz Bauer <lorenz.bauer@isovalent.com> > > [ Upstream commit dfdd608c3b365f0fd49d7e13911ebcde06b9865b ] > > Add a regression test that ensures that a VAR pointing at a > modifier which follows a PTR (or STRUCT or ARRAY) is resolved > correctly by the datasec validator. > > Signed-off-by: Lorenz Bauer <lmb@isovalent.com> > Link: https://lore.kernel.org/r/20230306112138.155352-3-lmb@isovalent.com > Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> > Signed-off-by: Sasha Levin <sashal@kernel.org> Hi Sasha, Can you explain why this patch was selected? I'd prefer to not backport the test, since it frequently leads to breakage when trying to build selftests/bpf on stable kernels. Thanks Lorenz ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-03-20 15:31 ` Lorenz Bauer @ 2023-03-20 15:48 ` Greg KH 2023-03-28 10:18 ` Lorenz Bauer 0 siblings, 1 reply; 11+ messages in thread From: Greg KH @ 2023-03-20 15:48 UTC (permalink / raw) To: Lorenz Bauer Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Mon, Mar 20, 2023 at 03:31:42PM +0000, Lorenz Bauer wrote: > On Mon, Mar 20, 2023 at 12:53 AM Sasha Levin <sashal@kernel.org> wrote: > > > > From: Lorenz Bauer <lorenz.bauer@isovalent.com> > > > > [ Upstream commit dfdd608c3b365f0fd49d7e13911ebcde06b9865b ] > > > > Add a regression test that ensures that a VAR pointing at a > > modifier which follows a PTR (or STRUCT or ARRAY) is resolved > > correctly by the datasec validator. > > > > Signed-off-by: Lorenz Bauer <lmb@isovalent.com> > > Link: https://lore.kernel.org/r/20230306112138.155352-3-lmb@isovalent.com > > Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> > > Signed-off-by: Sasha Levin <sashal@kernel.org> > > Hi Sasha, > > Can you explain why this patch was selected? I'd prefer to not > backport the test, since it frequently leads to breakage when trying > to build selftests/bpf on stable kernels. Why would it break? Is that because the test is buggy, or the kernel is buggy? thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-03-20 15:48 ` Greg KH @ 2023-03-28 10:18 ` Lorenz Bauer 2023-04-11 15:08 ` Lorenz Bauer 0 siblings, 1 reply; 11+ messages in thread From: Lorenz Bauer @ 2023-03-28 10:18 UTC (permalink / raw) To: Greg KH Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Mon, Mar 20, 2023 at 3:48 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > Why would it break? Is that because the test is buggy, or the kernel is > buggy? This test will be fine, but there have been several times when selftests/bpf for stable kernel releases didn't actually compile due to backported tests. This is because macros we're redefined, etc. Unless those also get picked (seems like a sisyphean task) we'll keep seeing broken selftests/bpf on stable. Best Lorenz ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-03-28 10:18 ` Lorenz Bauer @ 2023-04-11 15:08 ` Lorenz Bauer 2023-04-11 15:14 ` Greg KH 0 siblings, 1 reply; 11+ messages in thread From: Lorenz Bauer @ 2023-04-11 15:08 UTC (permalink / raw) To: Greg KH Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Tue, Mar 28, 2023 at 11:18 AM Lorenz Bauer <lmb@isovalent.com> wrote: > > On Mon, Mar 20, 2023 at 3:48 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > > > Why would it break? Is that because the test is buggy, or the kernel is > > buggy? > > This test will be fine, but there have been several times when > selftests/bpf for stable kernel releases didn't actually compile due > to backported tests. This is because macros we're redefined, etc. > Unless those also get picked (seems like a sisyphean task) we'll keep > seeing broken selftests/bpf on stable. Hi Greg, Sasha, Following up on this since it seems to have fallen through the cracks. Lorenz ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-04-11 15:08 ` Lorenz Bauer @ 2023-04-11 15:14 ` Greg KH 2023-05-24 11:03 ` Lorenz Bauer 0 siblings, 1 reply; 11+ messages in thread From: Greg KH @ 2023-04-11 15:14 UTC (permalink / raw) To: Lorenz Bauer Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Tue, Apr 11, 2023 at 04:08:32PM +0100, Lorenz Bauer wrote: > On Tue, Mar 28, 2023 at 11:18 AM Lorenz Bauer <lmb@isovalent.com> wrote: > > > > On Mon, Mar 20, 2023 at 3:48 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > > > > > Why would it break? Is that because the test is buggy, or the kernel is > > > buggy? > > > > This test will be fine, but there have been several times when > > selftests/bpf for stable kernel releases didn't actually compile due > > to backported tests. This is because macros we're redefined, etc. > > Unless those also get picked (seems like a sisyphean task) we'll keep > > seeing broken selftests/bpf on stable. > > Hi Greg, Sasha, > > Following up on this since it seems to have fallen through the cracks. I didn't see anything to do here. And selftests should NOT be broken on stable releases, if so, something is wrong as no other subsystem has that happen. confused, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-04-11 15:14 ` Greg KH @ 2023-05-24 11:03 ` Lorenz Bauer 2023-05-24 16:03 ` Greg KH 0 siblings, 1 reply; 11+ messages in thread From: Lorenz Bauer @ 2023-05-24 11:03 UTC (permalink / raw) To: Greg KH Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Tue, Apr 11, 2023 at 4:14 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > I didn't see anything to do here. > > And selftests should NOT be broken on stable releases, if so, something > is wrong as no other subsystem has that happen. Sorry for the long delay in replying, I update the kernels we use for CI only infrequently. Here is an example of the build failure I'm seeing, from kernel.org 5.10 LTS: In file included from /work/build/5.10.180/tools/testing/selftests/bpf/verifier/tests.h:59, from test_verifier.c:355: /work/build/5.10.180/tools/testing/selftests/bpf/verifier/ref_tracking.c:935:3: error: 'struct bpf_test' has no member named 'fixup_map_ringbuf'; did you mean 'fixup_map_in_map'? 935 | .fixup_map_ringbuf = { 11 }, | ^~~~~~~~~~~~~~~~~ | fixup_map_in_map This is just doing make -C tools/testing/selftests/bpf after compiling a kernel. Best Lorenz ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-05-24 11:03 ` Lorenz Bauer @ 2023-05-24 16:03 ` Greg KH 2023-05-24 17:04 ` Lorenz Bauer 0 siblings, 1 reply; 11+ messages in thread From: Greg KH @ 2023-05-24 16:03 UTC (permalink / raw) To: Lorenz Bauer Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Wed, May 24, 2023 at 12:03:43PM +0100, Lorenz Bauer wrote: > On Tue, Apr 11, 2023 at 4:14 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > > > I didn't see anything to do here. > > > > And selftests should NOT be broken on stable releases, if so, something > > is wrong as no other subsystem has that happen. > > Sorry for the long delay in replying, I update the kernels we use for > CI only infrequently. Here is an example of the build failure I'm > seeing, from kernel.org 5.10 LTS: > > In file included from > /work/build/5.10.180/tools/testing/selftests/bpf/verifier/tests.h:59, > from test_verifier.c:355: > /work/build/5.10.180/tools/testing/selftests/bpf/verifier/ref_tracking.c:935:3: > error: 'struct bpf_test' has no member named 'fixup_map_ringbuf'; did > you mean 'fixup_map_in_map'? > 935 | .fixup_map_ringbuf = { 11 }, > | ^~~~~~~~~~~~~~~~~ > | fixup_map_in_map > > This is just doing make -C tools/testing/selftests/bpf after compiling a kernel. Great, any specific commits that fix this issue would be appreciated to be pointed at so we can apply them. thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-05-24 16:03 ` Greg KH @ 2023-05-24 17:04 ` Lorenz Bauer 2023-05-26 16:43 ` Greg KH 0 siblings, 1 reply; 11+ messages in thread From: Lorenz Bauer @ 2023-05-24 17:04 UTC (permalink / raw) To: Greg KH Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Wed, May 24, 2023 at 5:04 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > Great, any specific commits that fix this issue would be appreciated to > be pointed at so we can apply them. The problem was introduced by commit f4b8c0710ab6 ("selftests/bpf: Add verifier test for release_reference()") in your tree. Seems like fixup_map_ringbuf was introduced in upstream commit 4237e9f4a962 ("selftests/bpf: Add verifier test for PTR_TO_MEM spill") but that wasn't backported. To restate my original question: how can we avoid breaking BPF selftests? From personal experience this happens somewhat regularly. Best Lorenz ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-05-24 17:04 ` Lorenz Bauer @ 2023-05-26 16:43 ` Greg KH 2023-05-30 11:24 ` Lorenz Bauer 0 siblings, 1 reply; 11+ messages in thread From: Greg KH @ 2023-05-26 16:43 UTC (permalink / raw) To: Lorenz Bauer Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Wed, May 24, 2023 at 06:04:43PM +0100, Lorenz Bauer wrote: > On Wed, May 24, 2023 at 5:04 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > > > Great, any specific commits that fix this issue would be appreciated to > > be pointed at so we can apply them. > > The problem was introduced by commit f4b8c0710ab6 ("selftests/bpf: Add > verifier test for release_reference()") in your tree. Seems like > fixup_map_ringbuf was introduced in upstream commit 4237e9f4a962 > ("selftests/bpf: Add verifier test for PTR_TO_MEM spill") but that > wasn't backported. So what tree(s) does this need to be backported to? I'm confused, this is a 6.2 email thread which is long end-of-life. > To restate my original question: how can we avoid breaking BPF > selftests? From personal experience this happens somewhat regularly. It can be avoided by people testing and letting me know when things break :) thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer 2023-05-26 16:43 ` Greg KH @ 2023-05-30 11:24 ` Lorenz Bauer 0 siblings, 0 replies; 11+ messages in thread From: Lorenz Bauer @ 2023-05-30 11:24 UTC (permalink / raw) To: Greg KH Cc: Sasha Levin, linux-kernel, stable, Martin KaFai Lau, ast, daniel, andrii, shuah, yhs, eddyz87, sdf, error27, iii, memxor, bpf, linux-kselftest On Fri, May 26, 2023 at 6:43 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > So what tree(s) does this need to be backported to? I'm confused, this > is a 6.2 email thread which is long end-of-life. That would be 5.10 from what I can tell. Other LTS kernels have working tools/testing/selftests/bpf. I replied here because you asked for examples :) > It can be avoided by people testing and letting me know when things > break :) Fair enough. Earlier you said: > And selftests should NOT be broken on stable releases, if so, something > is wrong as no other subsystem has that happen. Why is bpf special in this regard then? Best Lorenz ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-05-30 11:25 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230320005258.1428043-1-sashal@kernel.org>
2023-03-20 0:52 ` [PATCH AUTOSEL 6.2 08/30] selftests/bpf: check that modifier resolves after pointer Sasha Levin
2023-03-20 15:31 ` Lorenz Bauer
2023-03-20 15:48 ` Greg KH
2023-03-28 10:18 ` Lorenz Bauer
2023-04-11 15:08 ` Lorenz Bauer
2023-04-11 15:14 ` Greg KH
2023-05-24 11:03 ` Lorenz Bauer
2023-05-24 16:03 ` Greg KH
2023-05-24 17:04 ` Lorenz Bauer
2023-05-26 16:43 ` Greg KH
2023-05-30 11:24 ` Lorenz Bauer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox