• Andrii Nakryiko's avatar
    libbpf: Add legacy uprobe attaching support · cc10623c
    Andrii Nakryiko authored
    Similarly to recently added legacy kprobe attach interface support
    through tracefs, support attaching uprobes using the legacy interface if
    host kernel doesn't support newer FD-based interface.
    
    For uprobes event name consists of "libbpf_" prefix, PID, sanitized
    binary path and offset within that binary. Structuraly the code is
    aligned with kprobe logic refactoring in previous patch. struct
    bpf_link_perf is re-used and all the same legacy_probe_name and
    legacy_is_retprobe fields are used to ensure proper cleanup on
    bpf_link__destroy().
    
    Users should be aware, though, that on old kernels which don't support
    FD-based interface for kprobe/uprobe attachment, if the application
    crashes before bpf_link__destroy() is called, uprobe legacy
    events will be left in tracefs. This is the same limitation as with
    legacy kprobe interfaces.
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20210921210036.1545557-5-andrii@kernel.org
    cc10623c
libbpf.c 283 KB