hi, at the moment we can't retrieve the number of missed kprobe executions and subsequent execution of BPF programs. This patchset adds: - counting of missed execution on attach layer for: . kprobes attached through perf link (kprobe/ftrace) . kprobes attached through kprobe.multi link (fprobe) - counting of recursion_misses for BPF kprobe programs It's still technically possible to create kprobe without perf link (using SET_BPF perf ioctl) in which case we don't have a way to retrieve the kprobe's 'missed' count. However both libbpf and cilium/ebpf libraries use perf link if it's available, and for old kernels without perf link support we can use BPF program to retrieve the kprobe missed count. v3 changes: - added acks [Song] - make test_missed not serial [Andrii] Also available at: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/missed_stats thanks, jirka --- Jiri Olsa (9): bpf: Count stats for kprobe_multi programs bpf: Add missed value to kprobe_multi link info bpf: Add missed value to kprobe perf link info bpf: Count missed stats in trace_call_bpf bpftool: Display missed count for kprobe_multi link bpftool: Display missed count for kprobe perf link selftests/bpf: Add test for missed counts of perf event link kprobe selftests/bpf: Add test for recursion counts of perf event link kprobe selftests/bpf: Add test for recursion counts of perf event link tracepoint include/linux/bpf.h | 16 +++++++++++ include/linux/trace_events.h | 6 ++-- include/uapi/linux/bpf.h | 2 ++ kernel/bpf/syscall.c | 14 ++++++---- kernel/trace/bpf_trace.c | 10 +++++-- kernel/trace/trace_kprobe.c | 14 ++++++++-- tools/bpf/bpftool/link.c | 6 ++++ tools/include/uapi/linux/bpf.h | 2 ++ tools/testing/selftests/bpf/DENYLIST.aarch64 | 1 + tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c | 5 ++++ tools/testing/selftests/bpf/bpf_testmod/bpf_testmod_kfunc.h | 2 ++ tools/testing/selftests/bpf/prog_tests/missed.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/progs/missed_kprobe.c | 30 ++++++++++++++++++++ tools/testing/selftests/bpf/progs/missed_kprobe_recursion.c | 48 ++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/progs/missed_tp_recursion.c | 41 +++++++++++++++++++++++++++ 15 files changed, 322 insertions(+), 13 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/missed.c create mode 100644 tools/testing/selftests/bpf/progs/missed_kprobe.c create mode 100644 tools/testing/selftests/bpf/progs/missed_kprobe_recursion.c create mode 100644 tools/testing/selftests/bpf/progs/missed_tp_recursion.c