Merge branch 'bpf: Add missed stats for kprobes'
authorAndrii Nakryiko <andrii@kernel.org>
Mon, 25 Sep 2023 23:37:45 +0000 (16:37 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 25 Sep 2023 23:37:53 +0000 (16:37 -0700)
commit0e73ef1d8c09a1f21ca2b19684819dbbcdce00f9
treec693b65caa5a8a700c04677fcce5e8db95a7a706
parente0fa6523e02ab31a27daf52e58a0d95fd52d5300
parent85981e0f9e9fc882578f0ad7488d6c59193dd187
Merge branch 'bpf: Add missed stats for kprobes'

Jiri Olsa says:

====================
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
====================

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>