bpf: Introduce helper bpf_get_branch_snapshot
authorSong Liu <songliubraving@fb.com>
Fri, 10 Sep 2021 18:33:51 +0000 (11:33 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 13 Sep 2021 17:53:50 +0000 (10:53 -0700)
commit856c02dbce4f8d6a5644083db22c11750aa11481
tree3c3230ddfc3a5e7a03b30614b3da5aa2cc6cfe86
parentc22ac2a3d4bd83411ebf0b1726e9e5fc4f5e7ebf
bpf: Introduce helper bpf_get_branch_snapshot

Introduce bpf_get_branch_snapshot(), which allows tracing pogram to get
branch trace from hardware (e.g. Intel LBR). To use the feature, the
user need to create perf_event with proper branch_record filtering
on each cpu, and then calls bpf_get_branch_snapshot in the bpf function.
On Intel CPUs, VLBR event (raw event 0x1b00) can be use for this.

Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210910183352.3151445-3-songliubraving@fb.com
include/uapi/linux/bpf.h
kernel/bpf/trampoline.c
kernel/trace/bpf_trace.c
tools/include/uapi/linux/bpf.h