summaryrefslogtreecommitdiffstats
path: root/include/linux/trace_events.h
diff options
context:
space:
mode:
authorZheng Yejian <zhengyejian1@huawei.com>2022-11-10 10:03:19 +0800
committerSteven Rostedt (Google) <rostedt@goodmis.org>2022-11-23 19:08:31 -0500
commit96e6122cb79616c622ae0d025eb9f981120b568d (patch)
tree27a0016f9f2a0aacc103086354513c77b2f16136 /include/linux/trace_events.h
parenta76d4648a0bbd624a1322c15073b5032a5135f01 (diff)
downloadlinux-stable-96e6122cb79616c622ae0d025eb9f981120b568d.tar.gz
linux-stable-96e6122cb79616c622ae0d025eb9f981120b568d.tar.bz2
linux-stable-96e6122cb79616c622ae0d025eb9f981120b568d.zip
tracing: Optimize event type allocation with IDA
After commit 060fa5c83e67 ("tracing/events: reuse trace event ids after overflow"), trace events with dynamic type are linked up in list 'ftrace_event_list' through field 'trace_event.list'. Then when max event type number used up, it's possible to reuse type number of some freed one by traversing 'ftrace_event_list'. As instead, using IDA to manage available type numbers can make codes simpler and then the field 'trace_event.list' can be dropped. Since 'struct trace_event' is used in static tracepoints, drop 'trace_event.list' can make vmlinux smaller. Local test with about 2000 tracepoints, vmlinux reduced about 64KB: before:-rwxrwxr-x 1 root root 76669448 Nov 8 17:14 vmlinux after: -rwxrwxr-x 1 root root 76604176 Nov 8 17:15 vmlinux Link: https://lkml.kernel.org/r/20221110020319.1259291-1-zhengyejian1@huawei.com Signed-off-by: Zheng Yejian <zhengyejian1@huawei.com> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/trace_events.h')
-rw-r--r--include/linux/trace_events.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
index 20749bd9db71..bb2053246d6a 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -136,7 +136,6 @@ struct trace_event_functions {
struct trace_event {
struct hlist_node node;
- struct list_head list;
int type;
struct trace_event_functions *funcs;
};