Thread (2 messages) 2 messages, 2 authors, 2021-07-28

Re: [PATCH bpf] libbpf: fix probe for BPF_PROG_TYPE_CGROUP_SOCKOPT

From: Robin Gögge <hidden>
Date: 2021-07-28 10:59:28
Also in: bpf

On Tue, Jul 27, 2021 at 11:17 PM Andrii Nakryiko
[off-list ref] wrote:
On Tue, Jul 27, 2021 at 7:41 AM Robin Gögge [off-list ref] wrote:
quoted
This patch fixes the probe for BPF_PROG_TYPE_CGROUP_SOCKOPT,
so the probe reports accurate results when used by e.g.
bpftool.

Fixes: 4cdbfb59c44a ("libbpf: support sockopt hooks")

Signed-off-by: Robin Gögge <redacted>
Reviewed-by: Quentin Monnet <redacted>
---
Looks good, I'll apply to bpf tree once this patch makes it into patchworks.
I think I'll have to resend the patch from my gmail account, rookie mistake
on my part for using my outlook account in the first place I guess.
Meanwhile, looking at probe_load() seems like a bunch of other program
types are not handled properly as well. Would you mind checking that
as well and following up with more fixes for this? See also [0] for
this whole probing APIs situation.

  [0] https://github.com/libbpf/libbpf/issues/312
Yes, some other program type probes are broken at the moment. But
as far as I can tell fixing them won't be as easy for me as this one. I'm
currently working on implementing a feature probe API in cilium/ebpf,
once I have working probes for the types there I can try and translate
them to follow up with fixes here.
quoted
 tools/lib/bpf/libbpf_probes.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c
index ecaae2927ab8..cd8c703dde71 100644
--- a/tools/lib/bpf/libbpf_probes.c
+++ b/tools/lib/bpf/libbpf_probes.c
@@ -75,6 +75,9 @@ probe_load(enum bpf_prog_type prog_type, const struct bpf_insn *insns,
        case BPF_PROG_TYPE_CGROUP_SOCK_ADDR:
                xattr.expected_attach_type = BPF_CGROUP_INET4_CONNECT;
                break;
+       case BPF_PROG_TYPE_CGROUP_SOCKOPT:
+               xattr.expected_attach_type = BPF_CGROUP_GETSOCKOPT;
+               break;
        case BPF_PROG_TYPE_SK_LOOKUP:
                xattr.expected_attach_type = BPF_SK_LOOKUP;
                break;
@@ -104,7 +107,6 @@ probe_load(enum bpf_prog_type prog_type, const struct bpf_insn *insns,
        case BPF_PROG_TYPE_SK_REUSEPORT:
        case BPF_PROG_TYPE_FLOW_DISSECTOR:
        case BPF_PROG_TYPE_CGROUP_SYSCTL:
-       case BPF_PROG_TYPE_CGROUP_SOCKOPT:
        case BPF_PROG_TYPE_TRACING:
        case BPF_PROG_TYPE_STRUCT_OPS:
        case BPF_PROG_TYPE_EXT:
--
2.25.1
-- 
Robin Goegge
Tel. +491732422154
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help