]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Remove config check to enable bpf support for branch records
authorKajol Jain <kjain@linux.ibm.com>
Mon, 6 Dec 2021 07:33:15 +0000 (13:03 +0530)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 6 Dec 2021 14:21:15 +0000 (15:21 +0100)
commit9aaaf9165c653df9bdb461f4b8557bb476b1b8fd
treee61250a067381c77e4ef026c6d1b1ae1bee4cbb4
parentd653b556cfff3a7d8fa9ae61c9dc2f2857bfe26f
bpf: Remove config check to enable bpf support for branch records

Branch data available to BPF programs can be very useful to get stack traces
out of userspace application.

Commit 5bd6a04c8d35 ("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: 5bd6a04c8d35d ("bpf: Add bpf_read_branch_records() helper")
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211206073315.77432-1-kjain@linux.ibm.com
kernel/trace/bpf_trace.c