I've had people ask about moving tracing up further in the boot process. This patch series looks at function tracing only. It allows for tracing (and function filtering) to be moved right after memory is initialized. To have it happen before memory initialization would require a bit more work with allocating the ring buffer. But this is a start.
I placed a hook into free_reserved_area() which is used by all archs to free the init memory. Having it pass the range being freed to ftrace lets ftrace clean up any function that is registered such that it doesn't try to modify code that no longer exists. git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git for-next Head SHA1: 2b87965a1e6b6051435315d3f04627a5dbad979c Steven Rostedt (VMware) (7): tracing: Split tracing initialization into two for early initialization ftrace: Move ftrace_init() to right after memory initialization tracing: Postpone tracer start-up tests till the system is more robust ftrace: Have function tracing start in early boot up ftrace: Allow for function tracing to record init functions on boot up tracing: Move trace_handle_return() out of line ftrace/x86: Do no run CPU sync when there is only one CPU online ---- arch/x86/kernel/ftrace.c | 8 +++- include/linux/ftrace.h | 7 ++++ include/linux/init.h | 4 +- include/linux/trace_events.h | 11 +---- init/main.c | 9 +++-- kernel/trace/ftrace.c | 44 ++++++++++++++++++++ kernel/trace/trace.c | 92 +++++++++++++++++++++++++++++++++++++++++- kernel/trace/trace.h | 2 + kernel/trace/trace_functions.c | 3 +- mm/page_alloc.c | 4 ++ scripts/recordmcount.c | 1 + scripts/recordmcount.pl | 1 + 12 files changed, 168 insertions(+), 18 deletions(-)