[DTrace-devel] [PATCH] Fix fprobe/kprobe selection
eugene.loh at oracle.com
eugene.loh at oracle.com
Wed Feb 19 21:51:42 UTC 2025
From: Eugene Loh <eugene.loh at oracle.com>
In commit 2a09b3bea504 ("fbt: clean up fprobe/kprobe support"),
libdtrace/dt_prov_fbt.c populate() has this change:
- impl = BPF_HAS(dtp, BPF_FEAT_FENTRY) ? &dt_fbt_fprobe : &dt_fbt_kprobe;
+ dt_fbt = BPF_HAS(dtp, BPF_FEAT_FENTRY) ? dt_fbt_kprobe : dt_fbt_kprobe;
That is, regardless of the BPF_HAS() test, dt_fbt_kprobe is chosen.
Restore the choice to pick up dt_fbt_fprobe when appropriate.
It is hard to devise a test for this unique problem.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
libdtrace/dt_prov_fbt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libdtrace/dt_prov_fbt.c b/libdtrace/dt_prov_fbt.c
index f0910c371..eef93879d 100644
--- a/libdtrace/dt_prov_fbt.c
+++ b/libdtrace/dt_prov_fbt.c
@@ -75,7 +75,7 @@ static int populate(dtrace_hdl_t *dtp)
dtrace_syminfo_t sip;
dtrace_probedesc_t pd;
- dt_fbt = BPF_HAS(dtp, BPF_FEAT_FENTRY) ? dt_fbt_kprobe : dt_fbt_kprobe;
+ dt_fbt = BPF_HAS(dtp, BPF_FEAT_FENTRY) ? dt_fbt_fprobe : dt_fbt_kprobe;
prv = dt_provider_create(dtp, prvname, &dt_fbt, &pattr, NULL);
if (prv == NULL)
--
2.43.5
More information about the DTrace-devel
mailing list