• Jiri Olsa's avatar
    bpf: Add multi kprobe link · 0dcac272
    Jiri Olsa authored
    Adding new link type BPF_LINK_TYPE_KPROBE_MULTI that attaches kprobe
    program through fprobe API.
    
    The fprobe API allows to attach probe on multiple functions at once
    very fast, because it works on top of ftrace. On the other hand this
    limits the probe point to the function entry or return.
    
    The kprobe program gets the same pt_regs input ctx as when it's attached
    through the perf API.
    
    Adding new attach type BPF_TRACE_KPROBE_MULTI that allows attachment
    kprobe to multiple function with new link.
    
    User provides array of addresses or symbols with count to attach the
    kprobe program to. The new link_create uapi interface looks like:
    
      struct {
              __u32           flags;
              __u32           cnt;
              __aligned_u64   syms;
              __aligned_u64   addrs;
      } kprobe_multi;
    
    The flags field allows single BPF_TRACE_KPROBE_MULTI bit to create
    return multi kprobe.
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20220316122419.933957-4-jolsa@kernel.org
    0dcac272
bpf_trace.c 62.7 KB