[DTrace-devel] [PATCH] bpf: improve BPF feature check

Kris Van Hees kris.van.hees at oracle.com
Tue Nov 26 19:57:30 UTC 2024


The check for BPF attach types was trying to attach to bpf_check, but
attaching to that function is rejected by the BPF verifier on some
kernel versions.  Use bpf_get_btf_vmlinux because that function does
not take any arguments and therefore should always succeed.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 libdtrace/dt_bpf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libdtrace/dt_bpf.c b/libdtrace/dt_bpf.c
index 2a946f0d..662fd81a 100644
--- a/libdtrace/dt_bpf.c
+++ b/libdtrace/dt_bpf.c
@@ -488,8 +488,8 @@ dt_bpf_init_features(dtrace_hdl_t *dtp)
 {
 	uint32_t	btf_id;
 
-	btf_id = dt_btf_lookup_name_kind(dtp, dtp->dt_shared_btf, "bpf_check",
-					 BTF_KIND_FUNC);
+	btf_id = dt_btf_lookup_name_kind(dtp, dtp->dt_shared_btf,
+					 "bpf_get_btf_vmlinux", BTF_KIND_FUNC);
 	if (btf_id >= 0 &&
 	    have_attach_type(BPF_PROG_TYPE_TRACING, BPF_TRACE_FENTRY, btf_id))
 		BPF_SET_FEATURE(dtp, BPF_FEAT_FENTRY);
-- 
2.45.2




More information about the DTrace-devel mailing list