Re: [PATCH] fgraph: Use CPU hotplug mechanism to initialize idle shadow stacks
From: Linus Walleij
Date: Tue Dec 10 2024 - 10:11:37 EST
Hi Stephen,
On Sat, Oct 19, 2024 at 3:43 AM Steven Rostedt <rostedt@xxxxxxxxxxx> 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: stable@xxxxxxxxxxxxxxx
> Fixes: 868baf07b1a25 ("ftrace: Fix memory leak with function graph and cpu hotplug")
> Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
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?
Yours,
Linus Walleij