On Tue, 10 Dec 2024 16:11:16 +0100 Linus Walleij <[email protected]> wrote:
> Hi Stephen, > > On Sat, Oct 19, 2024 at 3:43 AM Steven Rostedt <[email protected]> wrote: > > > The function graph infrastructure allocates a shadow stack for every task > > when enabled. This includes the idle tasks. The first time the function > > graph is invoked, the shadow stacks are created and never freed until the > > task exits. This includes the idle tasks. > (...) > > Cc: [email protected] > > Fixes: 868baf07b1a25 ("ftrace: Fix memory leak with function graph and cpu > > hotplug") > > Signed-off-by: Steven Rostedt (Google) <[email protected]> > > This patch regressed boot-time tracing for me. > > How to reproduce: > - Enable CONFIG_FTRACE, CONFIG_FUNCTION_TRACER, > CONFIG_BOOTTIME_TRACING > - Pass command line > ftrace=function_graph ftrace_graph_filter=do_idle > to make ftrace trace this function all through the boot process. > > Before this patch: > > cd /sys/kernel/debug/tracing > cat trace > > gives a nice trace of all invocations of do_idle() during boot. > > After this patch: > > cd /sys/kernel/debug/tracing > cat trace > > Gives an empty trace :( > > And: > > cat current_tracer > function_graph > cat set_graph_function > do_idle > cat tracing_on > 1 > > So all *is* set up, just not performing > > I tried to figure out why this happens but I'm not good with tracing > internals. Any ideas? Interesting. Does this happen only on boot-time tracing or after boot too? If it does not work only for boot-time, cpuhp_setup_state() may not work before starting boot-time function graph tracing. Thank you, > > Yours, > Linus Walleij -- Masami Hiramatsu (Google) <[email protected]>
