* [PATCH bpf-next v3 0/3] bpf: add the missing fsession
@ 2026-04-12 6:03 Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 1/3] bpf: add missing fsession to the verifier log Menglong Dong
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Menglong Dong @ 2026-04-12 6:03 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, leon.hwang, bpf, linux-kernel,
linux-kselftest
Add the missing fsession attach type to the BPF docs, verifier log and
bpftool.
Changes since v2:
- replace "FENTRY/FEXIT/FSESSION" with "Tracing" in the 1st patch
- v2: https://lore.kernel.org/all/20260408062109.386083-1-dongml2@chinatelecom.cn/
Changes since v1:
- add a missing FSESSION in bpf_check_attach_target() in the 1st patch
- v1: https://lore.kernel.org/all/20260408031416.266229-1-dongml2@chinatelecom.cn/
Menglong Dong (3):
bpf: add missing fsession to the verifier log
docs/bpf: add missing fsession attach type to docs
bpftool: add missing fsession to the usage and docs of bpftool
Documentation/bpf/drgn.rst | 4 ++--
Documentation/bpf/libbpf/program_types.rst | 4 ++++
kernel/bpf/verifier.c | 10 +++++-----
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 2 +-
tools/bpf/bpftool/bash-completion/bpftool | 2 +-
tools/bpf/bpftool/prog.c | 2 +-
tools/testing/selftests/bpf/prog_tests/exceptions.c | 8 ++++----
tools/testing/selftests/bpf/verifier/sleepable.c | 2 +-
8 files changed, 19 insertions(+), 15 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH bpf-next v3 1/3] bpf: add missing fsession to the verifier log
2026-04-12 6:03 [PATCH bpf-next v3 0/3] bpf: add the missing fsession Menglong Dong
@ 2026-04-12 6:03 ` Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 2/3] docs/bpf: add missing fsession attach type to docs Menglong Dong
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Menglong Dong @ 2026-04-12 6:03 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, leon.hwang, bpf, linux-kernel,
linux-kselftest
The fsession attach type is missed in the verifier log in
check_get_func_ip(), bpf_check_attach_target() and check_attach_btf_id().
Update them to make the verifier log proper. Meanwhile, update the
corresponding selftests.
Acked-by: Leon Hwang <leon.hwang@linux.dev>
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
---
v3:
- replace "FENTRY/FEXIT/FSESSION" with "Tracing"
v2:
- add a missing FSESSION in bpf_check_attach_target()
---
kernel/bpf/verifier.c | 10 +++++-----
tools/testing/selftests/bpf/prog_tests/exceptions.c | 8 ++++----
tools/testing/selftests/bpf/verifier/sleepable.c | 2 +-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 84699a428077..ac89ad992f27 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -11690,7 +11690,7 @@ static int check_get_func_ip(struct bpf_verifier_env *env)
if (type == BPF_PROG_TYPE_TRACING) {
if (!bpf_prog_has_trampoline(env->prog)) {
- verbose(env, "func %s#%d supported only for fentry/fexit/fmod_ret programs\n",
+ verbose(env, "func %s#%d supported only for fentry/fexit/fsession/fmod_ret programs\n",
func_id_name(func_id), func_id);
return -ENOTSUPP;
}
@@ -25494,7 +25494,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
btf = tgt_prog ? tgt_prog->aux->btf : prog->aux->attach_btf;
if (!btf) {
bpf_log(log,
- "FENTRY/FEXIT program can only be attached to another program annotated with BTF\n");
+ "Tracing program can only be attached to another program annotated with BTF\n");
return -EINVAL;
}
t = btf_type_by_id(btf, btf_id);
@@ -25530,7 +25530,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
if (aux->func && aux->func[subprog]->aux->exception_cb) {
bpf_log(log,
"%s programs cannot attach to exception callback\n",
- prog_extension ? "Extension" : "FENTRY/FEXIT");
+ prog_extension ? "Extension" : "Tracing");
return -EINVAL;
}
conservative = aux->func_info_aux[subprog].unreliable;
@@ -25619,7 +25619,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
case BPF_TRACE_RAW_TP:
if (tgt_prog) {
bpf_log(log,
- "Only FENTRY/FEXIT progs are attachable to another BPF prog\n");
+ "Only FENTRY/FEXIT/FSESSION progs are attachable to another BPF prog\n");
return -EINVAL;
}
if (!btf_type_is_typedef(t)) {
@@ -25885,7 +25885,7 @@ static int check_attach_btf_id(struct bpf_verifier_env *env)
}
if (prog->sleepable && !can_be_sleepable(prog)) {
- verbose(env, "Only fentry/fexit/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable\n");
+ verbose(env, "Only fentry/fexit/fsession/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable\n");
return -EINVAL;
}
diff --git a/tools/testing/selftests/bpf/prog_tests/exceptions.c b/tools/testing/selftests/bpf/prog_tests/exceptions.c
index 84ab73e08b0e..e8cbaf2a3e82 100644
--- a/tools/testing/selftests/bpf/prog_tests/exceptions.c
+++ b/tools/testing/selftests/bpf/prog_tests/exceptions.c
@@ -128,7 +128,7 @@ static void test_exceptions_success(void)
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
"exception_cb_mod"), "set_attach_target"))
goto done;
- }), "FENTRY/FEXIT programs cannot attach to exception callback", 0);
+ }), "Tracing programs cannot attach to exception callback", 0);
if (test__start_subtest("throwing fentry -> exception_cb"))
RUN_EXT(-EINVAL, true, ({
@@ -138,7 +138,7 @@ static void test_exceptions_success(void)
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
"exception_cb_mod"), "set_attach_target"))
goto done;
- }), "FENTRY/FEXIT programs cannot attach to exception callback", 0);
+ }), "Tracing programs cannot attach to exception callback", 0);
if (test__start_subtest("non-throwing fexit -> exception_cb"))
RUN_EXT(-EINVAL, true, ({
@@ -148,7 +148,7 @@ static void test_exceptions_success(void)
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
"exception_cb_mod"), "set_attach_target"))
goto done;
- }), "FENTRY/FEXIT programs cannot attach to exception callback", 0);
+ }), "Tracing programs cannot attach to exception callback", 0);
if (test__start_subtest("throwing fexit -> exception_cb"))
RUN_EXT(-EINVAL, true, ({
@@ -158,7 +158,7 @@ static void test_exceptions_success(void)
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
"exception_cb_mod"), "set_attach_target"))
goto done;
- }), "FENTRY/FEXIT programs cannot attach to exception callback", 0);
+ }), "Tracing programs cannot attach to exception callback", 0);
if (test__start_subtest("throwing extension (with custom cb) -> exception_cb"))
RUN_EXT(-EINVAL, true, ({
diff --git a/tools/testing/selftests/bpf/verifier/sleepable.c b/tools/testing/selftests/bpf/verifier/sleepable.c
index 1f0d2bdc673f..c2b7f5ebf168 100644
--- a/tools/testing/selftests/bpf/verifier/sleepable.c
+++ b/tools/testing/selftests/bpf/verifier/sleepable.c
@@ -85,7 +85,7 @@
.expected_attach_type = BPF_TRACE_RAW_TP,
.kfunc = "sched_switch",
.result = REJECT,
- .errstr = "Only fentry/fexit/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable",
+ .errstr = "Only fentry/fexit/fsession/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable",
.flags = BPF_F_SLEEPABLE,
.runs = -1,
},
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH bpf-next v3 2/3] docs/bpf: add missing fsession attach type to docs
2026-04-12 6:03 [PATCH bpf-next v3 0/3] bpf: add the missing fsession Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 1/3] bpf: add missing fsession to the verifier log Menglong Dong
@ 2026-04-12 6:03 ` Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
2026-04-12 19:50 ` [PATCH bpf-next v3 0/3] bpf: add the missing fsession patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Menglong Dong @ 2026-04-12 6:03 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, leon.hwang, bpf, linux-kernel,
linux-kselftest
Add the fsession attach type to program_types.rst and drgn.rst.
Acked-by: Leon Hwang <leon.hwang@linux.dev>
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
---
Documentation/bpf/drgn.rst | 4 ++--
Documentation/bpf/libbpf/program_types.rst | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/Documentation/bpf/drgn.rst b/Documentation/bpf/drgn.rst
index 41f223c3161e..cabf702eb75a 100644
--- a/Documentation/bpf/drgn.rst
+++ b/Documentation/bpf/drgn.rst
@@ -26,8 +26,8 @@ about these objects, including id, type and name.
The main use-case `bpf_inspect.py`_ covers is to show BPF programs of types
``BPF_PROG_TYPE_EXT`` and ``BPF_PROG_TYPE_TRACING`` attached to other BPF
-programs via ``freplace``/``fentry``/``fexit`` mechanisms, since there is no
-user-space API to get this information.
+programs via ``freplace``/``fentry``/``fexit``/``fsession`` mechanisms, since
+there is no user-space API to get this information.
Getting started
===============
diff --git a/Documentation/bpf/libbpf/program_types.rst b/Documentation/bpf/libbpf/program_types.rst
index 3b837522834b..3a07ce3b7f79 100644
--- a/Documentation/bpf/libbpf/program_types.rst
+++ b/Documentation/bpf/libbpf/program_types.rst
@@ -207,6 +207,10 @@ described in more detail in the footnotes.
+ + +----------------------------------+-----------+
| | | ``fexit.s+`` [#fentry]_ | Yes |
+ +----------------------------------------+----------------------------------+-----------+
+| | ``BPF_TRACE_FSESSION`` | ``fsession+`` [#fentry]_ | |
++ + +----------------------------------+-----------+
+| | | ``fsession.s+`` [#fentry]_ | Yes |
++ +----------------------------------------+----------------------------------+-----------+
| | ``BPF_TRACE_ITER`` | ``iter+`` [#iter]_ | |
+ + +----------------------------------+-----------+
| | | ``iter.s+`` [#iter]_ | Yes |
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH bpf-next v3 3/3] bpftool: add missing fsession to the usage and docs of bpftool
2026-04-12 6:03 [PATCH bpf-next v3 0/3] bpf: add the missing fsession Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 1/3] bpf: add missing fsession to the verifier log Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 2/3] docs/bpf: add missing fsession attach type to docs Menglong Dong
@ 2026-04-12 6:03 ` Menglong Dong
2026-04-12 19:50 ` [PATCH bpf-next v3 0/3] bpf: add the missing fsession patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Menglong Dong @ 2026-04-12 6:03 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, leon.hwang, bpf, linux-kernel,
linux-kselftest
Add the fsession attach type to the usage of bpftool in do_help().
Meanwhile, add it to the bash-completion and bpftool-prog.rst too.
Acked-by: Leon Hwang <leon.hwang@linux.dev>
Acked-by: Quentin Monnet <qmo@kernel.org>
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
---
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 2 +-
tools/bpf/bpftool/bash-completion/bpftool | 2 +-
tools/bpf/bpftool/prog.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
index 35aeeaf5f711..90fa2a48cc26 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
@@ -54,7 +54,7 @@ PROG COMMANDS
| **cgroup/sendmsg4** | **cgroup/sendmsg6** | **cgroup/sendmsg_unix** |
| **cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/recvmsg_unix** | **cgroup/sysctl** |
| **cgroup/getsockopt** | **cgroup/setsockopt** | **cgroup/sock_release** |
-| **struct_ops** | **fentry** | **fexit** | **freplace** | **sk_lookup**
+| **struct_ops** | **fentry** | **fexit** | **fsession** | **freplace** | **sk_lookup**
| }
| *ATTACH_TYPE* := {
| **sk_msg_verdict** | **sk_skb_verdict** | **sk_skb_stream_verdict** |
diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool
index babb0d4e9753..75cbcb512eba 100644
--- a/tools/bpf/bpftool/bash-completion/bpftool
+++ b/tools/bpf/bpftool/bash-completion/bpftool
@@ -501,7 +501,7 @@ _bpftool()
cgroup/post_bind4 cgroup/post_bind6 \
cgroup/sysctl cgroup/getsockopt \
cgroup/setsockopt cgroup/sock_release struct_ops \
- fentry fexit freplace sk_lookup'
+ fentry fexit fsession freplace sk_lookup'
COMPREPLY=( $( compgen -W "$BPFTOOL_PROG_LOAD_TYPES" -- "$cur" ) )
return 0
;;
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index 6daf19809ca4..a9f730d407a9 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -2583,7 +2583,7 @@ static int do_help(int argc, char **argv)
" cgroup/getsockname_unix | cgroup/sendmsg4 | cgroup/sendmsg6 |\n"
" cgroup/sendmsg_unix | cgroup/recvmsg4 | cgroup/recvmsg6 | cgroup/recvmsg_unix |\n"
" cgroup/getsockopt | cgroup/setsockopt | cgroup/sock_release |\n"
- " struct_ops | fentry | fexit | freplace | sk_lookup }\n"
+ " struct_ops | fentry | fexit | fsession | freplace | sk_lookup }\n"
" ATTACH_TYPE := { sk_msg_verdict | sk_skb_verdict | sk_skb_stream_verdict |\n"
" sk_skb_stream_parser | flow_dissector }\n"
" METRIC := { cycles | instructions | l1d_loads | llc_misses | itlb_misses | dtlb_misses }\n"
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH bpf-next v3 0/3] bpf: add the missing fsession
2026-04-12 6:03 [PATCH bpf-next v3 0/3] bpf: add the missing fsession Menglong Dong
` (2 preceding siblings ...)
2026-04-12 6:03 ` [PATCH bpf-next v3 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
@ 2026-04-12 19:50 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-04-12 19:50 UTC (permalink / raw)
To: Menglong Dong
Cc: ast, daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor,
song, yonghong.song, jolsa, shuah, emil, leon.hwang, bpf,
linux-kernel, linux-kselftest
Hello:
This series was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <ast@kernel.org>:
On Sun, 12 Apr 2026 14:03:43 +0800 you wrote:
> Add the missing fsession attach type to the BPF docs, verifier log and
> bpftool.
>
> Changes since v2:
> - replace "FENTRY/FEXIT/FSESSION" with "Tracing" in the 1st patch
> - v2: https://lore.kernel.org/all/20260408062109.386083-1-dongml2@chinatelecom.cn/
>
> [...]
Here is the summary with links:
- [bpf-next,v3,1/3] bpf: add missing fsession to the verifier log
https://git.kernel.org/bpf/bpf-next/c/9fd19e3ed775
- [bpf-next,v3,2/3] docs/bpf: add missing fsession attach type to docs
https://git.kernel.org/bpf/bpf-next/c/46d9f15a55fb
- [bpf-next,v3,3/3] bpftool: add missing fsession to the usage and docs of bpftool
https://git.kernel.org/bpf/bpf-next/c/f0e16ac71618
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-12 19:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-12 6:03 [PATCH bpf-next v3 0/3] bpf: add the missing fsession Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 1/3] bpf: add missing fsession to the verifier log Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 2/3] docs/bpf: add missing fsession attach type to docs Menglong Dong
2026-04-12 6:03 ` [PATCH bpf-next v3 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
2026-04-12 19:50 ` [PATCH bpf-next v3 0/3] bpf: add the missing fsession patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox