Thread (15 messages) 15 messages, 3 authors, 2020-05-21

Re: [bpf-next PATCH v3 4/5] bpf: selftests, add sk_msg helpers load and attach test

From: Andrii Nakryiko <hidden>
Date: 2020-05-21 19:12:20
Also in: bpf

On Thu, May 21, 2020 at 12:09 PM John Fastabend
[off-list ref] wrote:
John Fastabend wrote:
quoted
Andrii Nakryiko wrote:
quoted
On Thu, May 21, 2020 at 7:36 AM John Fastabend [off-list ref] wrote:
quoted
The test itself is not particularly useful but it encodes a common
pattern we have.

Namely do a sk storage lookup then depending on data here decide if
we need to do more work or alternatively allow packet to PASS. Then
if we need to do more work consult task_struct for more information
about the running task. Finally based on this additional information
drop or pass the data. In this case the suspicious check is not so
realisitic but it encodes the general pattern and uses the helpers
so we test the workflow.

This is a load test to ensure verifier correctly handles this case.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
---
[...]
quoted
quoted
quoted
+static void test_skmsg_helpers(enum bpf_map_type map_type)
+{
+       struct test_skmsg_load_helpers *skel;
+       int err, map, verdict;
+
+       skel = test_skmsg_load_helpers__open_and_load();
+       if (!skel) {
+               FAIL("skeleton open/load failed");
+               return;
+       }
+
+       verdict = bpf_program__fd(skel->progs.prog_msg_verdict);
+       map = bpf_map__fd(skel->maps.sock_map);
+
+       err = xbpf_prog_attach(verdict, map, BPF_SK_MSG_VERDICT, 0);
+       if (err)
+               return;
+       xbpf_prog_detach2(verdict, map, BPF_SK_MSG_VERDICT);
no cleanup in this test, at all
Guess we need __destroy(skel) here.

As an aside how come if the program closes and refcnt drops the entire
thing isn't destroyed. I didn't think there was any pinning happening
in the __open_and_load piece.
I guess these are in progs_test so we can't leave these around for
any following tests to trip over. OK. Same thing for patch 3 fwiw.
Yep, exactly. It's a cooperative environment at the moment. We've
talked about running tests in forked processes and in parallel, but
until then, cleaning up is very important.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help