public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2 bpf-next 0/9] bpf: Add missed stats for kprobes
@ 2023-09-07  7:13 Jiri Olsa
  2023-09-07  7:13 ` [PATCHv2 bpf-next 1/9] bpf: Count stats for kprobe_multi programs Jiri Olsa
                   ` (8 more replies)
  0 siblings, 9 replies; 27+ messages in thread
From: Jiri Olsa @ 2023-09-07  7:13 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko
  Cc: bpf, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Stanislav Fomichev, Hao Luo, Hou Tao, Daniel Xu

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.

v2 changes:
  - rename bpf_prog_missed_array to bpf_prog_inc_misses_counters [Alexei]
  - add missing space to 'missed' output [Quentin]
  - drop runtime stats changes [Hou Tao]
  - add common helper for kprobe missed stats [Hou Tao]
  - add test for tracepoint recursion missed counts [Hou Tao]

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

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2023-09-14  7:56 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-07  7:13 [PATCHv2 bpf-next 0/9] bpf: Add missed stats for kprobes Jiri Olsa
2023-09-07  7:13 ` [PATCHv2 bpf-next 1/9] bpf: Count stats for kprobe_multi programs Jiri Olsa
2023-09-07 18:09   ` Song Liu
2023-09-07  7:13 ` [PATCHv2 bpf-next 2/9] bpf: Add missed value to kprobe_multi link info Jiri Olsa
2023-09-07 18:15   ` Song Liu
2023-09-07  7:13 ` [PATCHv2 bpf-next 3/9] bpf: Add missed value to kprobe perf " Jiri Olsa
2023-09-07 18:40   ` Song Liu
2023-09-08 11:43     ` Jiri Olsa
2023-09-08 16:49       ` Song Liu
2023-09-10 18:54         ` Jiri Olsa
2023-09-08 23:22       ` Andrii Nakryiko
2023-09-08 23:32         ` Song Liu
2023-09-08 23:44           ` Andrii Nakryiko
2023-09-10 18:54         ` Jiri Olsa
2023-09-07  7:13 ` [PATCHv2 bpf-next 4/9] bpf: Count missed stats in trace_call_bpf Jiri Olsa
2023-09-07 18:46   ` Song Liu
2023-09-07  7:13 ` [PATCHv2 bpf-next 5/9] bpftool: Display missed count for kprobe_multi link Jiri Olsa
2023-09-07  7:13 ` [PATCHv2 bpf-next 6/9] bpftool: Display missed count for kprobe perf link Jiri Olsa
2023-09-07  7:13 ` [PATCHv2 bpf-next 7/9] selftests/bpf: Add test for missed counts of perf event link kprobe Jiri Olsa
2023-09-07 18:52   ` Song Liu
2023-09-08 23:25   ` Andrii Nakryiko
2023-09-10 18:54     ` Jiri Olsa
2023-09-07  7:13 ` [PATCHv2 bpf-next 8/9] selftests/bpf: Add test for recursion " Jiri Olsa
2023-09-07 18:55   ` Song Liu
2023-09-14  7:56     ` Jiri Olsa
2023-09-07  7:13 ` [PATCHv2 bpf-next 9/9] selftests/bpf: Add test for recursion counts of perf event link tracepoint Jiri Olsa
2023-09-07 19:00   ` Song Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox