From: Jiri Olsa <jolsa@kernel.org>
To: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>
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>,
Hou Tao <houtao1@huawei.com>, Daniel Xu <dxu@dxuuu.xyz>
Subject: [PATCH bpf-next 02/12] bpf: Move bpf_prog_start_time to linux/filter.h
Date: Mon, 28 Aug 2023 09:55:27 +0200 [thread overview]
Message-ID: <20230828075537.194192-3-jolsa@kernel.org> (raw)
In-Reply-To: <20230828075537.194192-1-jolsa@kernel.org>
Moving bpf_prog_start_time to linux/filter.h and making it
globally available.
It will be used by other program types in following changes.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
include/linux/bpf.h | 20 ++++++++++++++++++++
kernel/bpf/trampoline.c | 12 ------------
2 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 05eece17a989..23a73f52c7bc 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -29,6 +29,9 @@
#include <linux/rcupdate_trace.h>
#include <linux/static_call.h>
#include <linux/memcontrol.h>
+#include <linux/sched/clock.h>
+
+DECLARE_STATIC_KEY_FALSE(bpf_stats_enabled_key);
struct bpf_verifier_env;
struct bpf_verifier_log;
@@ -2460,6 +2463,18 @@ static inline bool has_current_bpf_ctx(void)
void notrace bpf_prog_inc_misses_counter(struct bpf_prog *prog);
void notrace bpf_prog_update_prog_stats(struct bpf_prog *prog, u64 start);
+static __always_inline u64 notrace bpf_prog_start_time(void)
+{
+ u64 start = BPF_PROG_NO_START_TIME;
+
+ if (static_branch_unlikely(&bpf_stats_enabled_key)) {
+ start = sched_clock();
+ if (unlikely(!start))
+ start = BPF_PROG_NO_START_TIME;
+ }
+ return start;
+}
+
void bpf_dynptr_init(struct bpf_dynptr_kern *ptr, void *data,
enum bpf_dynptr_type type, u32 offset, u32 size);
void bpf_dynptr_set_null(struct bpf_dynptr_kern *ptr);
@@ -2702,6 +2717,11 @@ static void bpf_prog_update_prog_stats(struct bpf_prog *prog, u64 start)
{
}
+static inline u64 notrace bpf_prog_start_time(void)
+{
+ return 0;
+}
+
static inline void bpf_cgrp_storage_free(struct cgroup *cgroup)
{
}
diff --git a/kernel/bpf/trampoline.c b/kernel/bpf/trampoline.c
index a6528e847fae..ed5b014f9532 100644
--- a/kernel/bpf/trampoline.c
+++ b/kernel/bpf/trampoline.c
@@ -819,18 +819,6 @@ void bpf_trampoline_put(struct bpf_trampoline *tr)
mutex_unlock(&trampoline_mutex);
}
-static __always_inline u64 notrace bpf_prog_start_time(void)
-{
- u64 start = BPF_PROG_NO_START_TIME;
-
- if (static_branch_unlikely(&bpf_stats_enabled_key)) {
- start = sched_clock();
- if (unlikely(!start))
- start = BPF_PROG_NO_START_TIME;
- }
- return start;
-}
-
/* The logic is similar to bpf_prog_run(), but with an explicit
* rcu_read_lock() and migrate_disable() which are required
* for the trampoline. The macro is split into
--
2.41.0
next prev parent reply other threads:[~2023-08-28 7:56 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 ` Jiri Olsa [this message]
2023-09-04 13:12 ` [PATCH bpf-next 02/12] bpf: Move bpf_prog_start_time to linux/filter.h 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
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=20230828075537.194192-3-jolsa@kernel.org \
--to=jolsa@kernel.org \
--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=houtao1@huawei.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.