From: Jiri Olsa <jolsa@kernel.org>
To: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>
Cc: 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: [PATCHv6 bpf-next 02/29] ftrace: Add ftrace_hash_remove function
Date: Wed, 27 May 2026 13:39:24 +0200 [thread overview]
Message-ID: <20260527113951.46265-3-jolsa@kernel.org> (raw)
In-Reply-To: <20260527113951.46265-1-jolsa@kernel.org>
Adding ftrace_hash_remove function that removes all entries
from struct ftrace_hash object without freeing them.
It will be used in following changes where entries are allocated
as part of another structure and are free-ed separately.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
include/linux/ftrace.h | 1 +
kernel/trace/ftrace.c | 19 +++++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 282da661f131..d3acfac4f8a7 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -415,6 +415,7 @@ struct ftrace_hash *alloc_ftrace_hash(int size_bits);
void free_ftrace_hash(struct ftrace_hash *hash);
struct ftrace_func_entry *add_ftrace_hash_entry_direct(struct ftrace_hash *hash,
unsigned long ip, unsigned long direct);
+void ftrace_hash_remove(struct ftrace_hash *hash);
/* The hash used to know what functions callbacks trace */
struct ftrace_ops_hash {
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 57ab01fd00bd..45548b0200eb 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1249,6 +1249,25 @@ remove_hash_entry(struct ftrace_hash *hash,
hash->count--;
}
+void ftrace_hash_remove(struct ftrace_hash *hash)
+{
+ struct ftrace_func_entry *entry;
+ struct hlist_head *hhd;
+ struct hlist_node *tn;
+ int size;
+ int i;
+
+ if (!hash || !hash->count)
+ return;
+ size = 1 << hash->size_bits;
+ for (i = 0; i < size; i++) {
+ hhd = &hash->buckets[i];
+ hlist_for_each_entry_safe(entry, tn, hhd, hlist)
+ remove_hash_entry(hash, entry);
+ }
+ FTRACE_WARN_ON(hash->count);
+}
+
static void ftrace_hash_clear(struct ftrace_hash *hash)
{
struct hlist_head *hhd;
--
2.54.0
next prev parent reply other threads:[~2026-05-27 11:40 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-27 11:39 [PATCHv6 bpf-next 00/29] bpf: tracing_multi link Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 01/29] ftrace: Add ftrace_hash_count function Jiri Olsa
2026-05-27 12:37 ` bot+bpf-ci
2026-05-27 11:39 ` Jiri Olsa [this message]
2026-05-27 11:39 ` [PATCHv6 bpf-next 03/29] ftrace: Add add_ftrace_hash_entry function Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 04/29] bpf: Use mutex lock pool for bpf trampolines Jiri Olsa
2026-05-27 12:59 ` bot+bpf-ci
2026-05-27 11:39 ` [PATCHv6 bpf-next 05/29] bpf: Add struct bpf_trampoline_ops object Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 06/29] bpf: Move trampoline image setup into bpf_trampoline_ops callbacks Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 07/29] bpf: Add bpf_trampoline_add/remove_prog functions Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 08/29] bpf: Add struct bpf_tramp_node object Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 09/29] bpf: Factor fsession link to use struct bpf_tramp_node Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 10/29] bpf: Add multi tracing attach types Jiri Olsa
2026-05-27 12:59 ` bot+bpf-ci
2026-05-27 11:39 ` [PATCHv6 bpf-next 11/29] bpf: Move sleepable verification code to btf_id_allow_sleepable Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 12/29] bpf: Add bpf_trampoline_multi_attach/detach functions Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 13/29] bpf: Add support for tracing multi link Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 14/29] bpf: Add support for tracing_multi link cookies Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 15/29] bpf: Add support for tracing_multi link session Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 16/29] bpf: Add support for tracing_multi link fdinfo Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 17/29] libbpf: Add bpf_object_cleanup_btf function Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 18/29] libbpf: Add bpf_link_create support for tracing_multi link Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 19/29] libbpf: Add btf_type_is_traceable_func function Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 20/29] libbpf: Add support to create tracing multi link Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 21/29] selftests/bpf: Add tracing multi skel/pattern/ids attach tests Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 22/29] selftests/bpf: Add tracing multi skel/pattern/ids module " Jiri Olsa
2026-05-27 12:59 ` bot+bpf-ci
2026-05-27 11:39 ` [PATCHv6 bpf-next 23/29] selftests/bpf: Add tracing multi intersect tests Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 24/29] selftests/bpf: Add tracing multi cookies test Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 25/29] selftests/bpf: Add tracing multi session test Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 26/29] selftests/bpf: Add tracing multi attach fails test Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 27/29] selftests/bpf: Add tracing multi verifier " Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 28/29] selftests/bpf: Add tracing multi attach benchmark test Jiri Olsa
2026-05-27 11:39 ` [PATCHv6 bpf-next 29/29] selftests/bpf: Add tracing multi attach rollback tests Jiri Olsa
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=20260527113951.46265-3-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox