* [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; 7+ 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] 7+ 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; 7+ 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] 7+ 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 2026-04-09 2:43 ` Menglong Dong 0 siblings, 2 replies; 7+ 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] 7+ 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 1 sibling, 0 replies; 7+ 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] 7+ 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 1 sibling, 0 replies; 7+ 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] 7+ 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; 7+ 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] 7+ 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; 7+ 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] 7+ messages in thread
end of thread, other threads:[~2026-04-09 2:43 UTC | newest] Thread overview: 7+ 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-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