• Jose Fernandez's avatar
    bpf: Improve program stats run-time calculation · ce09cbdd
    Jose Fernandez authored
    This patch improves the run-time calculation for program stats by
    capturing the duration as soon as possible after the program returns.
    
    Previously, the duration included u64_stats_t operations. While the
    instrumentation overhead is part of the total time spent when stats are
    enabled, distinguishing between the program's native execution time and
    the time spent due to instrumentation is crucial for accurate
    performance analysis.
    
    By making this change, the patch facilitates more precise optimization
    of BPF programs, enabling users to understand their performance in
    environments without stats enabled.
    
    I used a virtualized environment to measure the run-time over one minute
    for a basic raw_tracepoint/sys_enter program, which just increments a
    local counter. Although the virtualization introduced some performance
    degradation that could affect the results, I observed approximately a
    16% decrease in average run-time reported by stats with this change
    (310 -> 260 nsec).
    Signed-off-by: default avatarJose Fernandez <josef@netflix.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20240402034010.25060-1-josef@netflix.com
    ce09cbdd
trampoline.c 27.7 KB