Changes v4 -> v6: 1. When kernel stack is added to stackmap with build_id, use fallback mechanism to store ip (status == BPF_STACK_BUILD_ID_IP).
Changes v4 -> v5: 1. Only allow build_id lookup in non-nmi context. Added comment and commit message to highlight this limitation. 2. Minor fix reported by kbuild test robot. Changes v3 -> v4: 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 | 257 +++++++++++++++++++-- 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, 535 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