On Mon, 6 Nov 2023 19:04:16 +0900 Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote: > On Mon, 6 Nov 2023 01:10:10 +0900 > "Masami Hiramatsu (Google)" <mhiramat@xxxxxxxxxx> wrote: > > > From: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> > > > > Fix to initialize the ftrace_ops of fgraph_ops with ftrace_graph_func > > instead of ftrace_stub. > > I've changed this, because fprobe entry handler is not called via > fgraph without this. But maybe I have to set correct gops->ops.func > after init? I confirmed that this is right because it is introduced by 0c0593b45c9b ("x86/ftrace: Make function graph use ftrace directly") which replaces ftrace_stub with ftrace_graph_func (which automatically switched by architecture) Thanks, > > Thank you, > > > > > Signed-off-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> > > --- > > kernel/trace/fgraph.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c > > index 597250bd30dc..858fb73440ec 100644 > > --- a/kernel/trace/fgraph.c > > +++ b/kernel/trace/fgraph.c > > @@ -872,7 +872,7 @@ unsigned long ftrace_graph_ret_addr(struct task_struct *task, int *idx, > > void fgraph_init_ops(struct ftrace_ops *dst_ops, > > struct ftrace_ops *src_ops) > > { > > - dst_ops->func = ftrace_stub; > > + dst_ops->func = ftrace_graph_func; > > dst_ops->flags = FTRACE_OPS_FL_PID | FTRACE_OPS_FL_STUB; > > > > #ifdef FTRACE_GRAPH_TRAMP_ADDR > > @@ -1120,7 +1120,7 @@ int register_ftrace_graph(struct fgraph_ops *gops) > > > > if (!gops->ops.func) { > > gops->ops.flags |= FTRACE_OPS_FL_STUB; > > - gops->ops.func = ftrace_stub; > > + gops->ops.func = ftrace_graph_func; > > #ifdef FTRACE_GRAPH_TRAMP_ADDR > > gops->ops.trampoline = FTRACE_GRAPH_TRAMP_ADDR; > > #endif > > > > > -- > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> -- Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>