* [PATCH bpf-next v2 0/3] bpf: add the missing fsession
@ 2026-04-08 6:21 Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log Menglong Dong
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Menglong Dong @ 2026-04-08 6:21 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, bpf, linux-kernel,
linux-kselftest
Add the missing fsession attach type to the BPF docs, verifier log and
bpftool.
Changes since v1:
- add a missing FSESSION in bpf_check_attach_target() in the 1st patch
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] 10+ messages in thread
* [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log
2026-04-08 6:21 [PATCH bpf-next v2 0/3] bpf: add the missing fsession Menglong Dong
@ 2026-04-08 6:21 ` Menglong Dong
2026-04-08 13:21 ` Jiri Olsa
2026-04-08 6:21 ` [PATCH bpf-next v2 2/3] docs/bpf: add missing fsession attach type to docs Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
2 siblings, 1 reply; 10+ messages in thread
From: Menglong Dong @ 2026-04-08 6:21 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, 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.
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Acked-by: Leon Hwang <leon.hwang@linux.dev>
---
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 594260c1f382..beb660b4c3ec 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -11757,7 +11757,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;
}
@@ -25561,7 +25561,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");
+ "FENTRY/FEXIT/FSESSION program can only be attached to another program annotated with BTF\n");
return -EINVAL;
}
t = btf_type_by_id(btf, btf_id);
@@ -25597,7 +25597,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" : "FENTRY/FEXIT/FSESSION");
return -EINVAL;
}
conservative = aux->func_info_aux[subprog].unreliable;
@@ -25686,7 +25686,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)) {
@@ -25952,7 +25952,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..94a62fcd4543 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);
+ }), "FENTRY/FEXIT/FSESSION 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);
+ }), "FENTRY/FEXIT/FSESSION 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);
+ }), "FENTRY/FEXIT/FSESSION 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);
+ }), "FENTRY/FEXIT/FSESSION 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] 10+ messages in thread
* [PATCH bpf-next v2 2/3] docs/bpf: add missing fsession attach type to docs
2026-04-08 6:21 [PATCH bpf-next v2 0/3] bpf: add the missing fsession Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log Menglong Dong
@ 2026-04-08 6:21 ` Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
2 siblings, 0 replies; 10+ messages in thread
From: Menglong Dong @ 2026-04-08 6:21 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, bpf, linux-kernel,
linux-kselftest
Add the fsession attach type to program_types.rst and drgn.rst.
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Acked-by: Leon Hwang <leon.hwang@linux.dev>
---
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] 10+ messages in thread
* [PATCH bpf-next v2 3/3] bpftool: add missing fsession to the usage and docs of bpftool
2026-04-08 6:21 [PATCH bpf-next v2 0/3] bpf: add the missing fsession Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 2/3] docs/bpf: add missing fsession attach type to docs Menglong Dong
@ 2026-04-08 6:21 ` Menglong Dong
2026-04-09 13:39 ` Quentin Monnet
2 siblings, 1 reply; 10+ messages in thread
From: Menglong Dong @ 2026-04-08 6:21 UTC (permalink / raw)
To: ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, 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.
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Acked-by: Leon Hwang <leon.hwang@linux.dev>
---
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] 10+ messages in thread
* Re: [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log
2026-04-08 6:21 ` [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log Menglong Dong
@ 2026-04-08 13:21 ` Jiri Olsa
2026-04-08 15:57 ` Alexei Starovoitov
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Jiri Olsa @ 2026-04-08 13:21 UTC (permalink / raw)
To: Menglong Dong
Cc: ast, daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor,
song, yonghong.song, shuah, emil, bpf, linux-kernel,
linux-kselftest
On Wed, Apr 08, 2026 at 02:21:07PM +0800, Menglong Dong wrote:
> 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.
>
> Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> Acked-by: Leon Hwang <leon.hwang@linux.dev>
> ---
> 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 594260c1f382..beb660b4c3ec 100644
> --- a/kernel/bpf/verifier.c
> +++ b/kernel/bpf/verifier.c
> @@ -11757,7 +11757,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;
> }
> @@ -25561,7 +25561,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");
> + "FENTRY/FEXIT/FSESSION program can only be attached to another program annotated with BTF\n");
I wonder this should say 'Tracing program...' instead,
we have other tracing types not covered in this error
jirka
> return -EINVAL;
> }
> t = btf_type_by_id(btf, btf_id);
> @@ -25597,7 +25597,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" : "FENTRY/FEXIT/FSESSION");
> return -EINVAL;
> }
> conservative = aux->func_info_aux[subprog].unreliable;
> @@ -25686,7 +25686,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)) {
> @@ -25952,7 +25952,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..94a62fcd4543 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);
> + }), "FENTRY/FEXIT/FSESSION 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);
> + }), "FENTRY/FEXIT/FSESSION 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);
> + }), "FENTRY/FEXIT/FSESSION 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);
> + }), "FENTRY/FEXIT/FSESSION 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 [flat|nested] 10+ messages in thread
* Re: [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log
2026-04-08 13:21 ` Jiri Olsa
@ 2026-04-08 15:57 ` Alexei Starovoitov
2026-04-09 2:43 ` Menglong Dong
2026-04-09 11:28 ` Menglong Dong
2 siblings, 0 replies; 10+ messages in thread
From: Alexei Starovoitov @ 2026-04-08 15:57 UTC (permalink / raw)
To: Jiri Olsa
Cc: Menglong Dong, Alexei Starovoitov, Daniel Borkmann,
John Fastabend, Andrii Nakryiko, Martin KaFai Lau, Eduard,
Kumar Kartikeya Dwivedi, Song Liu, Yonghong Song, Shuah Khan,
Emil Tsalapatis, bpf, LKML, open list:KERNEL SELFTEST FRAMEWORK
On Wed, Apr 8, 2026 at 6:21 AM Jiri Olsa <olsajiri@gmail.com> wrote:
>
> On Wed, Apr 08, 2026 at 02:21:07PM +0800, Menglong Dong wrote:
> > 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.
> >
> > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> > Acked-by: Leon Hwang <leon.hwang@linux.dev>
> > ---
> > 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 594260c1f382..beb660b4c3ec 100644
> > --- a/kernel/bpf/verifier.c
> > +++ b/kernel/bpf/verifier.c
> > @@ -11757,7 +11757,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;
> > }
> > @@ -25561,7 +25561,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");
> > + "FENTRY/FEXIT/FSESSION program can only be attached to another program annotated with BTF\n");
>
> I wonder this should say 'Tracing program...' instead,
> we have other tracing types not covered in this error
+1
pw-bot: cr
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log
2026-04-08 13:21 ` Jiri Olsa
2026-04-08 15:57 ` Alexei Starovoitov
@ 2026-04-09 2:43 ` Menglong Dong
2026-04-09 11:28 ` Menglong Dong
2 siblings, 0 replies; 10+ messages in thread
From: Menglong Dong @ 2026-04-09 2:43 UTC (permalink / raw)
To: Menglong Dong, Jiri Olsa
Cc: ast, daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor,
song, yonghong.song, shuah, emil, bpf, linux-kernel,
linux-kselftest
On 2026/4/8 21:21 Jiri Olsa <olsajiri@gmail.com> write:
> On Wed, Apr 08, 2026 at 02:21:07PM +0800, Menglong Dong wrote:
> > 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.
> >
> > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> > Acked-by: Leon Hwang <leon.hwang@linux.dev>
> > ---
> > 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 594260c1f382..beb660b4c3ec 100644
> > --- a/kernel/bpf/verifier.c
> > +++ b/kernel/bpf/verifier.c
> > @@ -11757,7 +11757,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;
> > }
> > @@ -25561,7 +25561,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");
> > + "FENTRY/FEXIT/FSESSION program can only be attached to another program annotated with BTF\n");
>
> I wonder this should say 'Tracing program...' instead,
> we have other tracing types not covered in this error
Yeah, it make sense. I'll update it in V3.
Thanks!
Menglong Dong
>
> jirka
>
> > return -EINVAL;
> > }
> > t = btf_type_by_id(btf, btf_id);
> > @@ -25597,7 +25597,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" : "FENTRY/FEXIT/FSESSION");
> > return -EINVAL;
> > }
> > conservative = aux->func_info_aux[subprog].unreliable;
> > @@ -25686,7 +25686,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)) {
> > @@ -25952,7 +25952,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..94a62fcd4543 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);
> > + }), "FENTRY/FEXIT/FSESSION 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);
> > + }), "FENTRY/FEXIT/FSESSION 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);
> > + }), "FENTRY/FEXIT/FSESSION 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);
> > + }), "FENTRY/FEXIT/FSESSION 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 [flat|nested] 10+ messages in thread
* Re: [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log
2026-04-08 13:21 ` Jiri Olsa
2026-04-08 15:57 ` Alexei Starovoitov
2026-04-09 2:43 ` Menglong Dong
@ 2026-04-09 11:28 ` Menglong Dong
2026-04-09 13:16 ` Jiri Olsa
2 siblings, 1 reply; 10+ messages in thread
From: Menglong Dong @ 2026-04-09 11:28 UTC (permalink / raw)
To: Menglong Dong, Jiri Olsa
Cc: ast, daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor,
song, yonghong.song, shuah, emil, bpf, linux-kernel,
linux-kselftest
On 2026/4/8 21:21 Jiri Olsa <olsajiri@gmail.com> write:
> On Wed, Apr 08, 2026 at 02:21:07PM +0800, Menglong Dong wrote:
> > 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.
> >
> > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> > Acked-by: Leon Hwang <leon.hwang@linux.dev>
> > ---
> > 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 594260c1f382..beb660b4c3ec 100644
> > --- a/kernel/bpf/verifier.c
> > +++ b/kernel/bpf/verifier.c
> > @@ -11757,7 +11757,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;
> > }
> > @@ -25561,7 +25561,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");
> > + "FENTRY/FEXIT/FSESSION program can only be attached to another program annotated with BTF\n");
>
> I wonder this should say 'Tracing program...' instead,
> we have other tracing types not covered in this error
>
> jirka
>
> > return -EINVAL;
> > }
> > t = btf_type_by_id(btf, btf_id);
> > @@ -25597,7 +25597,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" : "FENTRY/FEXIT/FSESSION");
I guess that we'd better use "Tracing" instead of "FENTRY/FEXIT/FSESSION"
here too?
> > return -EINVAL;
> > }
[...]
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log
2026-04-09 11:28 ` Menglong Dong
@ 2026-04-09 13:16 ` Jiri Olsa
0 siblings, 0 replies; 10+ messages in thread
From: Jiri Olsa @ 2026-04-09 13:16 UTC (permalink / raw)
To: Menglong Dong
Cc: Menglong Dong, Jiri Olsa, ast, daniel, john.fastabend, andrii,
martin.lau, eddyz87, memxor, song, yonghong.song, shuah, emil,
bpf, linux-kernel, linux-kselftest
On Thu, Apr 09, 2026 at 07:28:55PM +0800, Menglong Dong wrote:
> On 2026/4/8 21:21 Jiri Olsa <olsajiri@gmail.com> write:
> > On Wed, Apr 08, 2026 at 02:21:07PM +0800, Menglong Dong wrote:
> > > 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.
> > >
> > > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> > > Acked-by: Leon Hwang <leon.hwang@linux.dev>
> > > ---
> > > 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 594260c1f382..beb660b4c3ec 100644
> > > --- a/kernel/bpf/verifier.c
> > > +++ b/kernel/bpf/verifier.c
> > > @@ -11757,7 +11757,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;
> > > }
> > > @@ -25561,7 +25561,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");
> > > + "FENTRY/FEXIT/FSESSION program can only be attached to another program annotated with BTF\n");
> >
> > I wonder this should say 'Tracing program...' instead,
> > we have other tracing types not covered in this error
> >
> > jirka
> >
> > > return -EINVAL;
> > > }
> > > t = btf_type_by_id(btf, btf_id);
> > > @@ -25597,7 +25597,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" : "FENTRY/FEXIT/FSESSION");
>
> I guess that we'd better use "Tracing" instead of "FENTRY/FEXIT/FSESSION"
> here too?
ah right lgtm
jirka
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH bpf-next v2 3/3] bpftool: add missing fsession to the usage and docs of bpftool
2026-04-08 6:21 ` [PATCH bpf-next v2 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
@ 2026-04-09 13:39 ` Quentin Monnet
0 siblings, 0 replies; 10+ messages in thread
From: Quentin Monnet @ 2026-04-09 13:39 UTC (permalink / raw)
To: Menglong Dong, ast
Cc: daniel, john.fastabend, andrii, martin.lau, eddyz87, memxor, song,
yonghong.song, jolsa, shuah, emil, bpf, linux-kernel,
linux-kselftest
On 08/04/2026 07:21, Menglong Dong wrote:
> 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.
>
> Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> Acked-by: Leon Hwang <leon.hwang@linux.dev>
Thanks for this.
Acked-by: Quentin Monnet <qmo@kernel.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-04-09 13:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-08 6:21 [PATCH bpf-next v2 0/3] bpf: add the missing fsession Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 1/3] bpf: add missing fsession to the verifier log Menglong Dong
2026-04-08 13:21 ` Jiri Olsa
2026-04-08 15:57 ` Alexei Starovoitov
2026-04-09 2:43 ` Menglong Dong
2026-04-09 11:28 ` Menglong Dong
2026-04-09 13:16 ` Jiri Olsa
2026-04-08 6:21 ` [PATCH bpf-next v2 2/3] docs/bpf: add missing fsession attach type to docs Menglong Dong
2026-04-08 6:21 ` [PATCH bpf-next v2 3/3] bpftool: add missing fsession to the usage and docs of bpftool Menglong Dong
2026-04-09 13:39 ` Quentin Monnet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox