Messages in this thread | | | From | Song Liu <> | Subject | [PATCH v3 bpf-next 0/2] bpf: fix stackmap on perf_events with PEBS | Date | Thu, 16 Jul 2020 15:59:31 -0700 |
| |
Calling get_perf_callchain() on perf_events from PEBS entries may cause unwinder errors. To fix this issue, perf subsystem fetches callchain early, and marks perf_events are marked with __PERF_SAMPLE_CALLCHAIN_EARLY. Similar issue exists when BPF program calls get_perf_callchain() via helper functions. For more information about this issue, please refer to discussions in [1].
This set fixes this issue with helper proto bpf_get_stackid_pe and bpf_get_stack_pe.
[1] https://lore.kernel.org/lkml/ED7B9430-6489-4260-B3C5-9CFA2E3AA87A@fb.com/
Changes v2 => v3: 1. Fix handling of stackmap skip field. (Andrii) 2. Simplify the code in a few places. (Andrii)
Changes v1 => v2: 1. Simplify the design and avoid introducing new helper function. (Andrii)
Song Liu (2): bpf: separate bpf_get_[stack|stackid] for perf events BPF selftests/bpf: add callchain_stackid
include/linux/bpf.h | 2 + kernel/bpf/stackmap.c | 202 ++++++++++++++++-- kernel/trace/bpf_trace.c | 4 +- .../bpf/prog_tests/perf_event_stackmap.c | 116 ++++++++++ .../selftests/bpf/progs/perf_event_stackmap.c | 59 +++++ 5 files changed, 363 insertions(+), 20 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/perf_event_stackmap.c create mode 100644 tools/testing/selftests/bpf/progs/perf_event_stackmap.c
-- 2.24.1
| |