Message ID | 20220225184130.483208-1-jakub@cloudflare.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | BPF |
Headers | show |
Series | [bpf-next] selftests/bpf: Fix error reporting from sock_fields programs | expand |
On Fri, Feb 25, 2022 at 07:41:30PM +0100, Jakub Sitnicki wrote: > The helper macro that records an error in BPF programs that exercise sock > fields access has been indavertedly broken by adaptation work that happened > in commit b18c1f0aa477 ("bpf: selftest: Adapt sock_fields test to use skel > and global variables"). > > BPF_NOEXIST flag cannot be used to update BPF_MAP_TYPE_ARRAY. The operation > always fails with -EEXIST, which in turn means the error never gets > recorded, and the checks for errors always pass. > > Revert the change in update flags. > > Fixes: b18c1f0aa477 ("bpf: selftest: Adapt sock_fields test to use skel and global variables") > Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com> > --- > tools/testing/selftests/bpf/progs/test_sock_fields.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/bpf/progs/test_sock_fields.c b/tools/testing/selftests/bpf/progs/test_sock_fields.c > index 246f1f001813..3e2e3ee51cc9 100644 > --- a/tools/testing/selftests/bpf/progs/test_sock_fields.c > +++ b/tools/testing/selftests/bpf/progs/test_sock_fields.c > @@ -114,7 +114,7 @@ static void tpcpy(struct bpf_tcp_sock *dst, > > #define RET_LOG() ({ \ > linum = __LINE__; \ > - bpf_map_update_elem(&linum_map, &linum_idx, &linum, BPF_NOEXIST); \ > + bpf_map_update_elem(&linum_map, &linum_idx, &linum, BPF_ANY); \ Acked-by: Martin KaFai Lau <kafai@fb.com>
On Fri, Feb 25, 2022 at 12:13 PM -08, Martin KaFai Lau wrote: > On Fri, Feb 25, 2022 at 07:41:30PM +0100, Jakub Sitnicki wrote: >> The helper macro that records an error in BPF programs that exercise sock >> fields access has been indavertedly broken by adaptation work that happened >> in commit b18c1f0aa477 ("bpf: selftest: Adapt sock_fields test to use skel >> and global variables"). >> >> BPF_NOEXIST flag cannot be used to update BPF_MAP_TYPE_ARRAY. The operation >> always fails with -EEXIST, which in turn means the error never gets >> recorded, and the checks for errors always pass. >> >> Revert the change in update flags. >> >> Fixes: b18c1f0aa477 ("bpf: selftest: Adapt sock_fields test to use skel and global variables") >> Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com> >> --- >> tools/testing/selftests/bpf/progs/test_sock_fields.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/tools/testing/selftests/bpf/progs/test_sock_fields.c b/tools/testing/selftests/bpf/progs/test_sock_fields.c >> index 246f1f001813..3e2e3ee51cc9 100644 >> --- a/tools/testing/selftests/bpf/progs/test_sock_fields.c >> +++ b/tools/testing/selftests/bpf/progs/test_sock_fields.c >> @@ -114,7 +114,7 @@ static void tpcpy(struct bpf_tcp_sock *dst, >> >> #define RET_LOG() ({ \ >> linum = __LINE__; \ >> - bpf_map_update_elem(&linum_map, &linum_idx, &linum, BPF_NOEXIST); \ >> + bpf_map_update_elem(&linum_map, &linum_idx, &linum, BPF_ANY); \ > Acked-by: Martin KaFai Lau <kafai@fb.com> Thanks for the quick review. I need to follow up with a v2. Was too quick to send this patch out by itself. Now that the error reporting works, the test sock_fields tests are failing on little- and big-endian.
diff --git a/tools/testing/selftests/bpf/progs/test_sock_fields.c b/tools/testing/selftests/bpf/progs/test_sock_fields.c index 246f1f001813..3e2e3ee51cc9 100644 --- a/tools/testing/selftests/bpf/progs/test_sock_fields.c +++ b/tools/testing/selftests/bpf/progs/test_sock_fields.c @@ -114,7 +114,7 @@ static void tpcpy(struct bpf_tcp_sock *dst, #define RET_LOG() ({ \ linum = __LINE__; \ - bpf_map_update_elem(&linum_map, &linum_idx, &linum, BPF_NOEXIST); \ + bpf_map_update_elem(&linum_map, &linum_idx, &linum, BPF_ANY); \ return CG_OK; \ })
The helper macro that records an error in BPF programs that exercise sock fields access has been indavertedly broken by adaptation work that happened in commit b18c1f0aa477 ("bpf: selftest: Adapt sock_fields test to use skel and global variables"). BPF_NOEXIST flag cannot be used to update BPF_MAP_TYPE_ARRAY. The operation always fails with -EEXIST, which in turn means the error never gets recorded, and the checks for errors always pass. Revert the change in update flags. Fixes: b18c1f0aa477 ("bpf: selftest: Adapt sock_fields test to use skel and global variables") Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com> --- tools/testing/selftests/bpf/progs/test_sock_fields.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)