On Wed, Oct 30, 2019 at 12:36 PM Alexei Starovoitov <ast@xxxxxxxxxx> wrote: > > The bpf program type raw_tp together with 'expected_attach_type' > was the most appropriate api to indicate BTF-enabled raw_tp programs. > But during development it became apparent that 'expected_attach_type' > cannot be used and new 'attach_btf_id' field had to be introduced. > Which means that the information is duplicated in two fields where > one of them is ignored. > Clean it up by introducing new program type where both > 'expected_attach_type' and 'attach_btf_id' fields have > specific meaning. > In the future 'expected_attach_type' will be extended > with other attach points that have similar semantics to raw_tp. > This patch is replacing BTF-enabled BPF_PROG_TYPE_RAW_TRACEPOINT with > prog_type = BPF_RPOG_TYPE_TRACING > expected_attach_type = BPF_TRACE_RAW_TP > attach_btf_id = btf_id of raw tracepoint inside the kernel > Future patches will add > expected_attach_type = BPF_TRACE_FENTRY or BPF_TRACE_FEXIT > where programs have the same input context and the same helpers, > but different attach points. > > Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> > --- LGTM. Acked-by: Andrii Nakryiko <andriin@xxxxxx> > include/linux/bpf.h | 5 +++++ > include/linux/bpf_types.h | 1 + > include/uapi/linux/bpf.h | 2 ++ > kernel/bpf/syscall.c | 6 +++--- > kernel/bpf/verifier.c | 34 +++++++++++++++++++++--------- > kernel/trace/bpf_trace.c | 44 ++++++++++++++++++++++++++++++++------- > 6 files changed, 71 insertions(+), 21 deletions(-) > [...]