tracing: Have dynamic events have a ref counter
As dynamic events are not created by modules, if something is attached to one, calling "try_module_get()" on its "mod" field, is not going to keep the dynamic event from going away. Since dynamic events do not need the "mod" pointer of the event structure, make a union out of it in order to save memory (there's one structure for each of the thousand+ events in the kernel), and have any event with the DYNAMIC flag set to use a ref counter instead. Link: https://lore.kernel.org/linux-trace-devel/20210813004448.51c7de69ce432d338f4d226b@kernel.org/ Link: https://lkml.kernel.org/r/20210817035027.174869074@goodmis.org Suggested-by:Masami Hiramatsu <mhiramat@kernel.org> Acked-by:
Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by:
Steven Rostedt (VMware) <rostedt@goodmis.org>
Showing
- include/linux/trace_events.h 44 additions, 1 deletioninclude/linux/trace_events.h
- kernel/trace/trace.c 2 additions, 2 deletionskernel/trace/trace.c
- kernel/trace/trace_dynevent.c 38 additions, 0 deletionskernel/trace/trace_dynevent.c
- kernel/trace/trace_event_perf.c 3 additions, 3 deletionskernel/trace/trace_event_perf.c
- kernel/trace/trace_events.c 14 additions, 8 deletionskernel/trace/trace_events.c
- kernel/trace/trace_events_synth.c 12 additions, 7 deletionskernel/trace/trace_events_synth.c
- kernel/trace/trace_events_trigger.c 3 additions, 3 deletionskernel/trace/trace_events_trigger.c
- kernel/trace/trace_kprobe.c 4 additions, 0 deletionskernel/trace/trace_kprobe.c
- kernel/trace/trace_uprobe.c 4 additions, 0 deletionskernel/trace/trace_uprobe.c
Loading
Please register or sign in to comment