public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ 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
  2 siblings, 0 replies; 6+ 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] 6+ 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
  0 siblings, 1 reply; 6+ 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] 6+ 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
  0 siblings, 0 replies; 6+ 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] 6+ messages in thread

end of thread, other threads:[~2026-04-08 15:57 UTC | newest]

Thread overview: 6+ 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-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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox