From: Jiri Olsa <olsajiri@gmail.com>
To: Hou Tao <houtao@huaweicloud.com>
Cc: bpf@vger.kernel.org, Martin KaFai Lau <kafai@fb.com>,
Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@chromium.org>,
Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
Daniel Xu <dxu@dxuuu.xyz>, Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>
Subject: Re: [PATCH bpf-next 00/12] bpf: Add missed stats for kprobes
Date: Tue, 5 Sep 2023 09:20:20 +0200 [thread overview]
Message-ID: <ZPbWtN77sKUTj8U6@krava> (raw)
In-Reply-To: <85f528b3-f1bc-fdcf-d816-d2d20d7ce24f@huaweicloud.com>
On Tue, Sep 05, 2023 at 11:30:54AM +0800, Hou Tao wrote:
> Hi,
>
> On 8/28/2023 3:55 PM, Jiri Olsa wrote:
> > 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
>
> Because trace_call_bpf() is used for both kprobe and trace-point bpf
> program, so I think it is better to add one selftest for missed counter
> for trace-point program as well.
ok, will try to add some
thanks,
jirka
> > - counting runtime stats (kernel.bpf_stats_enabled=1) for BPF programs
> > executed through bpf_prog_run_array - kprobes, perf events, trace
> > syscall probes
> >
> >
> > 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.
> >
> > Also available at:
> > https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
> > bpf/missed_stats
> >
> > thanks,
> > jirka
> >
> >
> > ---
> > Jiri Olsa (12):
> > bpf: Move update_prog_stats to syscall object
> > bpf: Move bpf_prog_start_time to linux/filter.h
> > 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
> > bpf: Move bpf_prog_run_array down in the header file
> > bpf: Count run stats in bpf_prog_run_array
> > bpftool: Display missed count for kprobe_multi link
> > bpftool: Display missed count for kprobe perf link
> > selftests/bpf: Add test missed counts of perf event link kprobe
> > elftests/bpf: Add test recursion stats of perf event link kprobe
> >
> > include/linux/bpf.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
> > include/linux/trace_events.h | 6 ++++--
> > include/uapi/linux/bpf.h | 2 ++
> > kernel/bpf/syscall.c | 36 +++++++++++++++++++++++++------
> > kernel/bpf/trampoline.c | 45 +++++----------------------------------
> > kernel/trace/bpf_trace.c | 17 ++++++++++++---
> > kernel/trace/trace_kprobe.c | 5 ++++-
> > tools/bpf/bpftool/link.c | 8 ++++++-
> > 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 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > tools/testing/selftests/bpf/progs/missed_kprobe.c | 30 ++++++++++++++++++++++++++
> > tools/testing/selftests/bpf/progs/missed_kprobe_recursion.c | 48 +++++++++++++++++++++++++++++++++++++++++
> > 15 files changed, 327 insertions(+), 83 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
> >
> > .
>
prev parent reply other threads:[~2023-09-05 7:20 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-28 7:55 [PATCH bpf-next 00/12] bpf: Add missed stats for kprobes Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 01/12] bpf: Move update_prog_stats to syscall object Jiri Olsa
2023-08-28 17:25 ` Alexei Starovoitov
2023-08-29 8:00 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 02/12] bpf: Move bpf_prog_start_time to linux/filter.h Jiri Olsa
2023-09-04 13:12 ` Hou Tao
2023-08-28 7:55 ` [PATCH bpf-next 03/12] bpf: Count stats for kprobe_multi programs Jiri Olsa
2023-09-04 13:30 ` Hou Tao
2023-09-05 6:15 ` Hou Tao
2023-09-05 7:19 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 04/12] bpf: Add missed value to kprobe_multi link info Jiri Olsa
2023-09-04 13:33 ` Hou Tao
2023-08-28 7:55 ` [PATCH bpf-next 05/12] bpf: Add missed value to kprobe perf " Jiri Olsa
2023-09-05 2:23 ` Hou Tao
2023-09-05 7:19 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 06/12] bpf: Count missed stats in trace_call_bpf Jiri Olsa
2023-08-28 17:32 ` Alexei Starovoitov
2023-08-29 8:04 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 07/12] bpf: Move bpf_prog_run_array down in the header file Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 08/12] bpf: Count run stats in bpf_prog_run_array Jiri Olsa
2023-09-05 2:40 ` Hou Tao
2023-09-05 7:19 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 09/12] bpftool: Display missed count for kprobe_multi link Jiri Olsa
2023-08-29 16:40 ` Quentin Monnet
2023-08-30 10:46 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 10/12] bpftool: Display missed count for kprobe perf link Jiri Olsa
2023-08-29 16:42 ` Quentin Monnet
2023-08-30 16:01 ` Jiri Olsa
2023-08-28 7:55 ` [PATCH bpf-next 11/12] selftests/bpf: Add test missed counts of perf event link kprobe Jiri Olsa
2023-09-05 3:14 ` Hou Tao
2023-08-28 7:55 ` [PATCH bpf-next 12/12] selftests/bpf: Add test recursion stats " Jiri Olsa
2023-09-05 3:23 ` Hou Tao
2023-09-05 3:30 ` [PATCH bpf-next 00/12] bpf: Add missed stats for kprobes Hou Tao
2023-09-05 7:20 ` Jiri Olsa [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZPbWtN77sKUTj8U6@krava \
--to=olsajiri@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=dxu@dxuuu.xyz \
--cc=haoluo@google.com \
--cc=houtao@huaweicloud.com \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=kpsingh@chromium.org \
--cc=sdf@google.com \
--cc=songliubraving@fb.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.