On 11/5/19 1:17 PM, Andrii Nakryiko wrote: > On Sat, Nov 2, 2019 at 3:03 PM Alexei Starovoitov <ast@xxxxxxxxxx> wrote: >> >> Teach libbpf to recognize tracing programs types and attach them to >> fentry/fexit. >> >> Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> >> --- >> tools/include/uapi/linux/bpf.h | 2 ++ >> tools/lib/bpf/libbpf.c | 55 +++++++++++++++++++++++++++++----- >> tools/lib/bpf/libbpf.h | 2 ++ >> tools/lib/bpf/libbpf.map | 1 + >> 4 files changed, 53 insertions(+), 7 deletions(-) >> >> diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h >> index df6809a76404..69c200e6e696 100644 >> --- a/tools/include/uapi/linux/bpf.h >> +++ b/tools/include/uapi/linux/bpf.h >> @@ -201,6 +201,8 @@ enum bpf_attach_type { >> BPF_CGROUP_GETSOCKOPT, >> BPF_CGROUP_SETSOCKOPT, >> BPF_TRACE_RAW_TP, >> + BPF_TRACE_FENTRY, >> + BPF_TRACE_FEXIT, >> __MAX_BPF_ATTACH_TYPE >> }; >> >> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c >> index 7aa2a2a22cef..03e784f36dd9 100644 >> --- a/tools/lib/bpf/libbpf.c >> +++ b/tools/lib/bpf/libbpf.c >> @@ -3744,7 +3744,7 @@ bpf_object__load_progs(struct bpf_object *obj, int log_level) >> return 0; >> } >> >> -static int libbpf_attach_btf_id_by_name(const char *name, __u32 *btf_id); >> +static int libbpf_attach_btf_id_by_name(const char *name, __u32 *btf_id, bool raw_tp); > > Bools are hard to follow in code, why not just passing full > attach_type instead? It will also be more future-proof, if we need > another trick, similar to "bpf_trace_" prefix for raw_tp? > > Also, I have a mild preference for having output arguments to be the > very last in the argument list. Do you mind reordering so thar bool > raw_tp is second? Agree on both counts. Spotted another small nit in this function while testing corner cases. Will fix this and feedback to 5/7, 7/7 in the next version.