Message ID | 161662006586.29133.187705917710998342.stgit@john-Precision-5820-Tower (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | [bpf] bpf, selftests: test_maps generating unrecognized data section | expand |
On 3/24/21 10:07 PM, John Fastabend wrote: > With a relatively recent clang master branch test_map skips a section, > > libbpf: elf: skipping unrecognized data section(5) .rodata.str1.1 > > the cause is some pointless strings from bpf_printks in the BPF program > loaded during testing. Remove them so we stop tripping our test bots. > > Signed-off-by: John Fastabend <john.fastabend@gmail.com> > --- > .../selftests/bpf/progs/sockmap_tcp_msg_prog.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > index fdb4bf4408fa..0f603253f4ed 100644 > --- a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > +++ b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > @@ -16,10 +16,7 @@ int bpf_prog1(struct sk_msg_md *msg) > if (data + 8 > data_end) > return SK_DROP; > > - bpf_printk("data length %i\n", (__u64)msg->data_end - (__u64)msg->data); > d = (char *)data; Do we still need 'd' as well in that case, or the data + 8 > data_end test if we don't read any of the data? I'm not sure what was the original purpose of the prog, perhaps just to test that we can attach /something/ in general? Maybe in that case empty prog is sufficient if we don't do anything useful with the rest? > - bpf_printk("hello sendmsg hook %i %i\n", d[0], d[1]); > - > return SK_PASS; > } > >
Daniel Borkmann wrote: > On 3/24/21 10:07 PM, John Fastabend wrote: > > With a relatively recent clang master branch test_map skips a section, > > > > libbpf: elf: skipping unrecognized data section(5) .rodata.str1.1 > > > > the cause is some pointless strings from bpf_printks in the BPF program > > loaded during testing. Remove them so we stop tripping our test bots. > > > > Signed-off-by: John Fastabend <john.fastabend@gmail.com> > > --- > > .../selftests/bpf/progs/sockmap_tcp_msg_prog.c | 3 --- > > 1 file changed, 3 deletions(-) > > > > diff --git a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > > index fdb4bf4408fa..0f603253f4ed 100644 > > --- a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > > +++ b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > > @@ -16,10 +16,7 @@ int bpf_prog1(struct sk_msg_md *msg) > > if (data + 8 > data_end) > > return SK_DROP; > > > > - bpf_printk("data length %i\n", (__u64)msg->data_end - (__u64)msg->data); > > d = (char *)data; > > Do we still need 'd' as well in that case, or the data + 8 > data_end test if we don't > read any of the data? I'm not sure what was the original purpose of the prog, perhaps > just to test that we can attach /something/ in general? Maybe in that case empty prog > is sufficient if we don't do anything useful with the rest? This program and test existed before test_sockmap was running and doing a more complete test set. At that time it was the only thing verifying that we could read the d[] and check lengths. At this point these cases are covered there so it should be OK to just make it an empty program. Then it is _just_ testing the map attach/detach logic not that the programs themselves work correctly. By the way without d marked violatile my compiler removes the load there so its pointless as you note. Because this is used for test maps I'll just make this an empty program. > > > - bpf_printk("hello sendmsg hook %i %i\n", d[0], d[1]); > > - > > return SK_PASS; > > } > > > > >
On Wed, Mar 24, 2021 at 2:07 PM John Fastabend <john.fastabend@gmail.com> wrote: > > With a relatively recent clang master branch test_map skips a section, > > libbpf: elf: skipping unrecognized data section(5) .rodata.str1.1 > So it was on my TODO list for a while to get rid of this by combining all .rodata* sections into one at load time. I even outline that in "libbpf v1.0" doc ([0]). I just haven't gotten to implementing this yet. You can safely ignore this for now. But I also have nothing against cleaning up tests, of course. [0] https://docs.google.com/document/d/1UyjTZuPFWiPFyKk1tV5an11_iaRuec6U-ZESZ54nNTY > the cause is some pointless strings from bpf_printks in the BPF program > loaded during testing. Remove them so we stop tripping our test bots. > > Signed-off-by: John Fastabend <john.fastabend@gmail.com> > --- > .../selftests/bpf/progs/sockmap_tcp_msg_prog.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > index fdb4bf4408fa..0f603253f4ed 100644 > --- a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > +++ b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c > @@ -16,10 +16,7 @@ int bpf_prog1(struct sk_msg_md *msg) > if (data + 8 > data_end) > return SK_DROP; > > - bpf_printk("data length %i\n", (__u64)msg->data_end - (__u64)msg->data); > d = (char *)data; > - bpf_printk("hello sendmsg hook %i %i\n", d[0], d[1]); > - > return SK_PASS; > } > >
diff --git a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c index fdb4bf4408fa..0f603253f4ed 100644 --- a/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c +++ b/tools/testing/selftests/bpf/progs/sockmap_tcp_msg_prog.c @@ -16,10 +16,7 @@ int bpf_prog1(struct sk_msg_md *msg) if (data + 8 > data_end) return SK_DROP; - bpf_printk("data length %i\n", (__u64)msg->data_end - (__u64)msg->data); d = (char *)data; - bpf_printk("hello sendmsg hook %i %i\n", d[0], d[1]); - return SK_PASS; }
With a relatively recent clang master branch test_map skips a section, libbpf: elf: skipping unrecognized data section(5) .rodata.str1.1 the cause is some pointless strings from bpf_printks in the BPF program loaded during testing. Remove them so we stop tripping our test bots. Signed-off-by: John Fastabend <john.fastabend@gmail.com> --- .../selftests/bpf/progs/sockmap_tcp_msg_prog.c | 3 --- 1 file changed, 3 deletions(-)