lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    Subject[Question] How to reliably get BuildIDs from bpf prog
    Dear BPF experts,

    I'm working on collecting some kernel performance data using BPF
    tracing prog. Our performance profiling team wants to associate the
    data with user stack information. One of the requirements is to
    reliably get BuildIDs from bpf_get_stackid() and other similar helpers
    [1].

    As part of an early investigation, we found that there are a couple
    issues that make bpf_get_stackid() much less reliable than we'd like
    for our use:

    1. The first page of many binaries (which contains the ELF headers and
    thus the BuildID that we need) is often not in memory. The failure of
    find_get_page() (called from build_id_parse()) is higher than we would
    want.

    2. When anonymous huge pages are used to hold some regions of process
    text, build_id_parse() also fails to get a BuildID because
    vma->vm_file is NULL.

    These two issues are critical blockers for us to use BPF in
    production. Can we do better? What do other users do to reliably get
    build ids?

    Thanks very much,
    Hao

    [1] https://man7.org/linux/man-pages/man7/bpf-helpers.7.html

    \
     
     \ /
      Last update: 2022-01-25 01:14    [W:3.123 / U:0.432 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site