[RFC][PATCH 0/5] tracing: Allow module init functions to be traced

From: Steven Rostedt
Date: Tue Sep 19 2017 - 10:36:25 EST


Last release, module functions can be enabled before they are loaded
by echoing in ":mod:module-name" into set_ftrace_filter before the
module is loaded. When the module is loaded, its functions will be
enabled for tracing. Now it makes sense to enable module init functions
as well (kernel init functions can already be traced).

The first patch adds a function ftrace_free_mem() to let module code
tell ftrace to free the init functions from its tables so that new
enabling or disabling of function tracing does not try to modify
text that no longer exists in memory.

The second patch enables tracing of init functions from within modules.

The third patch adds kallsyms of those init functions so they look
like funtion names and not function pointers within the trace.

The fourth patch frees the saved kallsym name maps of the function
names to the module init addresses.

The last patch has kallsyms display the module init functions.


Steven Rostedt (VMware) (5):
ftrace: Add a ftrace_free_mem() function for modules to use
ftrace: Allow module init functions to be traced
ftrace: Save module init functions kallsyms symbols for tracing
ftrace: Add freeing algorithm to free ftrace_mod_maps
ftrace/kallsyms: Have /proc/kallsyms show saved mod init functions

----
include/linux/ftrace.h | 26 ++++++
include/linux/init.h | 4 +-
kernel/kallsyms.c | 38 +++++++--
kernel/module.c | 2 +
kernel/trace/ftrace.c | 226 ++++++++++++++++++++++++++++++++++++++++++++++++-
5 files changed, 284 insertions(+), 12 deletions(-)