• Kajol Jain's avatar
    bpf: Remove config check to enable bpf support for branch records · db52f572
    Kajol Jain authored
    Branch data available to BPF programs can be very useful to get stack traces
    out of userspace application.
    
    Commit fff7b643 ("bpf: Add bpf_read_branch_records() helper") added BPF
    support to capture branch records in x86. Enable this feature also for other
    architectures as well by removing checks specific to x86.
    
    If an architecture doesn't support branch records, bpf_read_branch_records()
    still has appropriate checks and it will return an -EINVAL in that scenario.
    Based on UAPI helper doc in include/uapi/linux/bpf.h, unsupported architectures
    should return -ENOENT in such case. Hence, update the appropriate check to
    return -ENOENT instead.
    
    Selftest 'perf_branches' result on power9 machine which has the branch stacks
    support:
    
     - Before this patch:
    
      [command]# ./test_progs -t perf_branches
       #88/1 perf_branches/perf_branches_hw:FAIL
       #88/2 perf_branches/perf_branches_no_hw:OK
       #88 perf_branches:FAIL
      Summary: 0/1 PASSED, 0 SKIPPED, 1 FAILED
    
     - After this patch:
    
      [command]# ./test_progs -t perf_branches
       #88/1 perf_branches/perf_branches_hw:OK
       #88/2 perf_branches/perf_branches_no_hw:OK
       #88 perf_branches:OK
      Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED
    
    Selftest 'perf_branches' result on power9 machine which doesn't have branch
    stack report:
    
     - After this patch:
    
      [command]# ./test_progs -t perf_branches
       #88/1 perf_branches/perf_branches_hw:SKIP
       #88/2 perf_branches/perf_branches_no_hw:OK
       #88 perf_branches:OK
      Summary: 1/1 PASSED, 1 SKIPPED, 0 FAILED
    
    Fixes: fff7b643 ("bpf: Add bpf_read_branch_records() helper")
    Suggested-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Signed-off-by: default avatarKajol Jain <kjain@linux.ibm.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20211206073315.77432-1-kjain@linux.ibm.com
    db52f572
bpf_trace.c 56.5 KB