[PATCH v4 0/4] perf/x86/amd: add LBR capture support outside of hardware events

From: Andrii Nakryiko
Date: Sun Mar 31 2024 - 00:18:45 EST


Add AMD-specific implementation of perf_snapshot_branch_stack static call that
allows LBR capture from arbitrary points in the kernel. This is utilized by
BPF programs. See patch #3 for all the details.

Patches #1 and #2 are preparatory steps to ensure LBR freezing is completely
inlined and have no branches, to minimize LBR snapshot contamination.

Patch #4 removes an artificial restriction on perf events with LBR enabled.

Andrii Nakryiko (4):
perf/x86/amd: ensure amd_pmu_core_disable_all() is always inlined
perf/x86/amd: avoid taking branches before disabling LBR
perf/x86/amd: support capturing LBR from software events
perf/x86/amd: don't reject non-sampling events with configured LBR

arch/x86/events/amd/core.c | 37 +++++++++++++++++++++++++++++++++++-
arch/x86/events/amd/lbr.c | 11 +----------
arch/x86/events/perf_event.h | 11 +++++++++++
3 files changed, 48 insertions(+), 11 deletions(-)

--
2.43.0