From: Leon Hwang <leon.hwang@linux.dev>
To: Jiri Olsa <jolsa@kernel.org>, Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>
Cc: Hengqi Chen <hengqi.chen@gmail.com>,
bpf@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
Martin KaFai Lau <kafai@fb.com>,
Eduard Zingerman <eddyz87@gmail.com>,
Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>,
Menglong Dong <menglong8.dong@gmail.com>,
Steven Rostedt <rostedt@kernel.org>
Subject: Re: [PATCHv4 bpf-next 00/25] bpf: tracing_multi link
Date: Wed, 25 Mar 2026 14:42:48 +0800 [thread overview]
Message-ID: <7fc7e5ad-ac42-4c7d-8314-bd252f8887a3@linux.dev> (raw)
In-Reply-To: <20260324081846.2334094-1-jolsa@kernel.org>
Hi Jiri,
Nice version for tracing_multi link.
I hope I have time to add tracing_multi link support to bpfsnoop, and
test this new tracing feature.
I left comments on patches #13, #24, and #25.
Hope this series lands in bpf-next soon.
Thanks,
Leon
On 24/3/26 16:18, Jiri Olsa wrote:
> hi,
> adding tracing_multi link support that allows fast attachment
> of tracing program to many functions.
>
> RFC: https://lore.kernel.org/bpf/20260203093819.2105105-1-jolsa@kernel.org/
> v1: https://lore.kernel.org/bpf/20260220100649.628307-1-jolsa@kernel.org/
> v2: https://lore.kernel.org/bpf/20260304222141.497203-1-jolsa@kernel.org/
> v3: https://lore.kernel.org/bpf/20260316075138.465430-1-jolsa@kernel.org/
>
> v4 changes:
> - unlink rollback fix (added ftrace_hash_count) [bot]
> - use const for some bpf_link_create_opts tracing_multi members [bot]
> - adding missing comment for lockdep keys [bot]
> - selftest error path fixes (leaks) and other assorted test fixes [Leon Hwang]
> - several compile fixes wrt CONFIG_BPF_SYSCALL and CONFIG_BPF_JIT [kernel test robot]
> - make ftrace_hash_clear global, because it's needed in rollback
>
> v3 changes:
> - fix module parsing [Leon Hwang]
> - use function traceable check from libbpf [Leon Hwang]
> - use ptr_to_u64 and fix/updated few comments [ci]
> - display cookies as decimal numbers [ci]
> - added link_create.flags check [ci]
> - fix error path in bpf_trampoline_multi_detach [ci]
> - make fentry/fexit.multi not extendable [ci]
> - add missing OPTS_VALID to bpf_program__attach_tracing_multi [ci]
>
> v2 changes:
> - allocate data.unreg in bpf_trampoline_multi_attach for rollback path [ci]
> and fixed link count setup in rollback path [ci]
> - several small assorted fixes [ci]
> - added loongarch and powerpc changes for struct bpf_tramp_node change
> - added support to attach functions from modules
> - added tests for sleepable programs
> - added rollback tests
>
> v1 changes:
> - added ftrace_hash_count as wrapper for hash_count [Steven]
> - added trampoline mutex pool [Andrii]
> - reworked 'struct bpf_tramp_node' separatoin [Andrii]
> - the 'struct bpf_tramp_node' now holds pointer to bpf_link,
> which is similar to what we do for uprobe_multi;
> I understand it's not a fundamental change compared to previous
> version which used bpf_prog pointer instead, but I don't see better
> way of doing this.. I'm happy to discuss this further if there's
> better idea
> - reworked 'struct bpf_fsession_link' based on bpf_tramp_node
> - made btf__find_by_glob_kind function internal helper [Andrii]
> - many small assorted fixes [Andrii,CI]
> - added session support [Leon Hwang]
> - added cookies support
> - added more tests
>
>
> Note I plan to send linkinfo support separately, the patchset is big enough.
>
> thanks,
> jirka
>
>
> Cc: Hengqi Chen <hengqi.chen@gmail.com>
> ---
> Jiri Olsa (25):
> ftrace: Add ftrace_hash_count function
> ftrace: Make ftrace_hash_clear global
> bpf: Use mutex lock pool for bpf trampolines
> bpf: Add struct bpf_trampoline_ops object
> bpf: Add struct bpf_tramp_node object
> bpf: Factor fsession link to use struct bpf_tramp_node
> bpf: Add multi tracing attach types
> bpf: Move sleepable verification code to btf_id_allow_sleepable
> bpf: Add bpf_trampoline_multi_attach/detach functions
> bpf: Add support for tracing multi link
> bpf: Add support for tracing_multi link cookies
> bpf: Add support for tracing_multi link session
> bpf: Add support for tracing_multi link fdinfo
> libbpf: Add bpf_object_cleanup_btf function
> libbpf: Add bpf_link_create support for tracing_multi link
> libbpf: Add btf_type_is_traceable_func function
> libbpf: Add support to create tracing multi link
> selftests/bpf: Add tracing multi skel/pattern/ids attach tests
> selftests/bpf: Add tracing multi skel/pattern/ids module attach tests
> selftests/bpf: Add tracing multi intersect tests
> selftests/bpf: Add tracing multi cookies test
> selftests/bpf: Add tracing multi session test
> selftests/bpf: Add tracing multi attach fails test
> selftests/bpf: Add tracing multi attach benchmark test
> selftests/bpf: Add tracing multi attach rollback tests
>
> arch/arm64/net/bpf_jit_comp.c | 58 +++---
> arch/loongarch/net/bpf_jit.c | 44 ++---
> arch/powerpc/net/bpf_jit_comp.c | 46 ++---
> arch/riscv/net/bpf_jit_comp64.c | 52 ++---
> arch/s390/net/bpf_jit_comp.c | 44 ++---
> arch/x86/net/bpf_jit_comp.c | 54 ++---
> include/linux/bpf.h | 102 +++++++---
> include/linux/bpf_types.h | 1 +
> include/linux/bpf_verifier.h | 3 +
> include/linux/btf_ids.h | 1 +
> include/linux/ftrace.h | 2 +
> include/linux/trace_events.h | 6 +
> include/uapi/linux/bpf.h | 9 +
> kernel/bpf/bpf_struct_ops.c | 27 +--
> kernel/bpf/btf.c | 4 +
> kernel/bpf/syscall.c | 88 ++++++---
> kernel/bpf/trampoline.c | 536 ++++++++++++++++++++++++++++++++++++++++---------
> kernel/bpf/verifier.c | 124 +++++++++---
> kernel/trace/bpf_trace.c | 149 +++++++++++++-
> kernel/trace/ftrace.c | 9 +-
> net/bpf/bpf_dummy_struct_ops.c | 14 +-
> net/bpf/test_run.c | 3 +
> tools/include/uapi/linux/bpf.h | 10 +
> tools/lib/bpf/bpf.c | 9 +
> tools/lib/bpf/bpf.h | 5 +
> tools/lib/bpf/libbpf.c | 337 ++++++++++++++++++++++++++++++-
> tools/lib/bpf/libbpf.h | 15 ++
> tools/lib/bpf/libbpf.map | 1 +
> tools/lib/bpf/libbpf_internal.h | 1 +
> tools/testing/selftests/bpf/Makefile | 9 +-
> tools/testing/selftests/bpf/prog_tests/tracing_multi.c | 912 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> tools/testing/selftests/bpf/progs/tracing_multi_attach.c | 39 ++++
> tools/testing/selftests/bpf/progs/tracing_multi_attach_module.c | 25 +++
> tools/testing/selftests/bpf/progs/tracing_multi_bench.c | 12 ++
> tools/testing/selftests/bpf/progs/tracing_multi_check.c | 212 ++++++++++++++++++++
> tools/testing/selftests/bpf/progs/tracing_multi_fail.c | 18 ++
> tools/testing/selftests/bpf/progs/tracing_multi_intersect_attach.c | 41 ++++
> tools/testing/selftests/bpf/progs/tracing_multi_rollback.c | 43 ++++
> tools/testing/selftests/bpf/progs/tracing_multi_session_attach.c | 43 ++++
> tools/testing/selftests/bpf/trace_helpers.c | 6 +-
> tools/testing/selftests/bpf/trace_helpers.h | 1 +
> 41 files changed, 2749 insertions(+), 366 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/prog_tests/tracing_multi.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_attach.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_attach_module.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_bench.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_check.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_fail.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_intersect_attach.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_rollback.c
> create mode 100644 tools/testing/selftests/bpf/progs/tracing_multi_session_attach.c
>
next prev parent reply other threads:[~2026-03-25 6:43 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-24 8:18 [PATCHv4 bpf-next 00/25] bpf: tracing_multi link Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 01/25] ftrace: Add ftrace_hash_count function Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 02/25] ftrace: Make ftrace_hash_clear global Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 03/25] bpf: Use mutex lock pool for bpf trampolines Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 04/25] bpf: Add struct bpf_trampoline_ops object Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 05/25] bpf: Add struct bpf_tramp_node object Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 06/25] bpf: Factor fsession link to use struct bpf_tramp_node Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 07/25] bpf: Add multi tracing attach types Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 08/25] bpf: Move sleepable verification code to btf_id_allow_sleepable Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 09/25] bpf: Add bpf_trampoline_multi_attach/detach functions Jiri Olsa
2026-03-24 8:58 ` bot+bpf-ci
2026-03-24 14:29 ` Jiri Olsa
2026-03-27 4:18 ` kernel test robot
2026-03-24 8:18 ` [PATCHv4 bpf-next 10/25] bpf: Add support for tracing multi link Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 11/25] bpf: Add support for tracing_multi link cookies Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 12/25] bpf: Add support for tracing_multi link session Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 13/25] bpf: Add support for tracing_multi link fdinfo Jiri Olsa
2026-03-25 6:43 ` Leon Hwang
2026-03-25 21:49 ` Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 14/25] libbpf: Add bpf_object_cleanup_btf function Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 15/25] libbpf: Add bpf_link_create support for tracing_multi link Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 16/25] libbpf: Add btf_type_is_traceable_func function Jiri Olsa
2026-03-24 8:58 ` bot+bpf-ci
2026-03-24 14:29 ` Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 17/25] libbpf: Add support to create tracing multi link Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 18/25] selftests/bpf: Add tracing multi skel/pattern/ids attach tests Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 19/25] selftests/bpf: Add tracing multi skel/pattern/ids module " Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 20/25] selftests/bpf: Add tracing multi intersect tests Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 21/25] selftests/bpf: Add tracing multi cookies test Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 22/25] selftests/bpf: Add tracing multi session test Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 23/25] selftests/bpf: Add tracing multi attach fails test Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 24/25] selftests/bpf: Add tracing multi attach benchmark test Jiri Olsa
2026-03-25 6:45 ` Leon Hwang
2026-03-25 15:11 ` Alexei Starovoitov
2026-03-25 21:48 ` Jiri Olsa
2026-03-25 21:48 ` Jiri Olsa
2026-03-24 8:18 ` [PATCHv4 bpf-next 25/25] selftests/bpf: Add tracing multi attach rollback tests Jiri Olsa
2026-03-25 6:45 ` Leon Hwang
2026-03-25 21:49 ` Jiri Olsa
2026-03-25 6:42 ` Leon Hwang [this message]
2026-03-25 14:58 ` [PATCHv4 bpf-next 00/25] bpf: tracing_multi link Leon Hwang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7fc7e5ad-ac42-4c7d-8314-bd252f8887a3@linux.dev \
--to=leon.hwang@linux.dev \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=hengqi.chen@gmail.com \
--cc=jolsa@kernel.org \
--cc=kafai@fb.com \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=menglong8.dong@gmail.com \
--cc=rostedt@kernel.org \
--cc=songliubraving@fb.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.