This is v4 of this work. Changes since v3: 1. Add fallback when build_id lookup failed. In this case, status is set to BPF_STACK_BUILD_ID_IP, and ip of this entry is saved. 2. Handle cases where vma is only part of the file (vma->vm_pgoff != 0). Thanks to Teng for helping me identify this issue! 3. Address feedbacks for previous versions.
Song Liu (2): bpf: extend stackmap to save binary_build_id+offset instead of address bpf: add selftest for stackmap with BPF_F_STACK_BUILD_ID include/uapi/linux/bpf.h | 22 ++ kernel/bpf/stackmap.c | 251 +++++++++++++++++++-- tools/include/uapi/linux/bpf.h | 22 ++ tools/testing/selftests/bpf/Makefile | 12 +- tools/testing/selftests/bpf/test_progs.c | 164 +++++++++++++- .../selftests/bpf/test_stacktrace_build_id.c | 60 +++++ tools/testing/selftests/bpf/urandom_read.c | 22 ++ 7 files changed, 529 insertions(+), 24 deletions(-) create mode 100644 tools/testing/selftests/bpf/test_stacktrace_build_id.c create mode 100644 tools/testing/selftests/bpf/urandom_read.c -- 2.9.5