]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Add bpf_read_branch_records() helper
authorDaniel Xu <dxu@dxuuu.xyz>
Tue, 18 Feb 2020 03:04:31 +0000 (19:04 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 19 Feb 2020 22:37:36 +0000 (14:37 -0800)
commit5bd6a04c8d35da553637a5b59ce183ac0a0df7fb
treeca8d642f593dee81cfdf303d8675ff5754dcb393
parente5cbf6c2e7fd54e349abefc25655df53d101dadc
bpf: Add bpf_read_branch_records() helper

Branch records are a CPU feature that can be configured to record
certain branches that are taken during code execution. This data is
particularly interesting for profile guided optimizations. perf has had
branch record support for a while but the data collection can be a bit
coarse grained.

We (Facebook) have seen in experiments that associating metadata with
branch records can improve results (after postprocessing). We generally
use bpf_probe_read_*() to get metadata out of userspace. That's why bpf
support for branch records is useful.

Aside from this particular use case, having branch data available to bpf
progs can be useful to get stack traces out of userspace applications
that omit frame pointers.

Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20200218030432.4600-2-dxu@dxuuu.xyz
include/uapi/linux/bpf.h
kernel/trace/bpf_trace.c