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 07/12] bpf: Move bpf_prog_run_array down in the header file
Date: Mon, 28 Aug 2023 09:55:32 +0200 [thread overview]
Message-ID: <20230828075537.194192-8-jolsa@kernel.org> (raw)
In-Reply-To: <20230828075537.194192-1-jolsa@kernel.org>
Moving bpf_prog_run_array down in the header file so we can
easily use bpf_prog_start_time and bpf_prog_update_prog_stats
functions in bpf_prog_run_array in following change.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
include/linux/bpf.h | 60 ++++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 71154e991730..478fdc4794c9 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -1904,36 +1904,6 @@ static inline void bpf_reset_run_ctx(struct bpf_run_ctx *old_ctx)
typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *prog, const void *ctx);
-static __always_inline u32
-bpf_prog_run_array(const struct bpf_prog_array *array,
- const void *ctx, bpf_prog_run_fn run_prog)
-{
- const struct bpf_prog_array_item *item;
- const struct bpf_prog *prog;
- struct bpf_run_ctx *old_run_ctx;
- struct bpf_trace_run_ctx run_ctx;
- u32 ret = 1;
-
- RCU_LOCKDEP_WARN(!rcu_read_lock_held(), "no rcu lock held");
-
- if (unlikely(!array))
- return ret;
-
- run_ctx.is_uprobe = false;
-
- migrate_disable();
- old_run_ctx = bpf_set_run_ctx(&run_ctx.run_ctx);
- item = &array->items[0];
- while ((prog = READ_ONCE(item->prog))) {
- run_ctx.bpf_cookie = item->bpf_cookie;
- ret &= run_prog(prog, ctx);
- item++;
- }
- bpf_reset_run_ctx(old_run_ctx);
- migrate_enable();
- return ret;
-}
-
/* Notes on RCU design for bpf_prog_arrays containing sleepable programs:
*
* We use the tasks_trace rcu flavor read section to protect the bpf_prog_array
@@ -2740,6 +2710,36 @@ static inline void bpf_dynptr_set_rdonly(struct bpf_dynptr_kern *ptr)
}
#endif /* CONFIG_BPF_SYSCALL */
+static __always_inline u32
+bpf_prog_run_array(const struct bpf_prog_array *array,
+ const void *ctx, bpf_prog_run_fn run_prog)
+{
+ const struct bpf_prog_array_item *item;
+ const struct bpf_prog *prog;
+ struct bpf_run_ctx *old_run_ctx;
+ struct bpf_trace_run_ctx run_ctx;
+ u32 ret = 1;
+
+ RCU_LOCKDEP_WARN(!rcu_read_lock_held(), "no rcu lock held");
+
+ if (unlikely(!array))
+ return ret;
+
+ run_ctx.is_uprobe = false;
+
+ migrate_disable();
+ old_run_ctx = bpf_set_run_ctx(&run_ctx.run_ctx);
+ item = &array->items[0];
+ while ((prog = READ_ONCE(item->prog))) {
+ run_ctx.bpf_cookie = item->bpf_cookie;
+ ret &= run_prog(prog, ctx);
+ item++;
+ }
+ bpf_reset_run_ctx(old_run_ctx);
+ migrate_enable();
+ return ret;
+}
+
static __always_inline int
bpf_probe_read_kernel_common(void *dst, u32 size, const void *unsafe_ptr)
{
--
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 ` [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 ` Jiri Olsa [this message]
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-8-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.