> On Fri, 13 Feb 2026 10:34:24 +0800 (CST) > <[email protected]> wrote: > > > From: Shengming Hu <[email protected]> > > > > When registering a second fgraph callback, direct path is disabled > > and array loop is used instead. > > When ftrace_graph_active falls back to one, we try to re-enable direct > > mode via ftrace_graph_enable_direct(true, ...). > > But ftrace_graph_enable_direct() incorrectly disables the static key > > rather than enabling it. > > This leaves fgraph_do_direct permanently off after first multi-callback > > transition, so direct fast mode is never restored. > > Good catch! > > > > > Fixes: cc60ee813b503 ("function_graph: Use static_call and branch to > > optimize entry function") > > Signed-off-by: Shengming Hu <[email protected]> > > --- > > kernel/trace/fgraph.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c > > index cc48d16be43e..4df766c690f9 100644 > > --- a/kernel/trace/fgraph.c > > +++ b/kernel/trace/fgraph.c > > @@ -1303,7 +1303,7 @@ static void ftrace_graph_enable_direct(bool > > enable_branch, struct fgraph_ops *go > > static_call_update(fgraph_func, func); > > static_call_update(fgraph_retfunc, retfunc); > > if (enable_branch) > > - static_branch_disable(&fgraph_do_direct); > > + static_branch_enable(&fgraph_do_direct); > > } > > Your email client killed your patch. it has huge white-space damage. > But because it's such a trivial change, I'll fix it up for you. But > next time please make sure your email client doesn't corrupt your > patches. > > Thanks, > > -- Steve
Hi Steve, I’ve identified the cause of the email formatting issue and have resent the patch. https://lore.kernel.org/linux-trace-kernel/[email protected]/T/#u Thank you very much for the reminder. -- With Best Regards, Shengming > > > > > static void ftrace_graph_disable_direct(bool disable_branch) > > -- > > 2.25.1 >
