On Mon, 3 Jun 2024 12:11:07 +0900 Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote: > > From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx> > > > > In most cases function graph is used by a single user. Instead of calling > > a loop to call function graph callbacks in this case, call the function > > entry callback directly. > > > > Add a static_key that will be used to set the function graph logic to > > either do the loop (when more than one callback is registered) or to call > > the callback directly if there is only one registered callback. > > I understand this works, but my concern is that, if we use fprobe > and function_graph at the same time, does it always loop on both gops? > > I mean if those are the subops of one ftrace_ops, ftrace_trampoline > will always call the same function_graph_enter() for both gops, and loop > on the gops list. > > For example, if there are 2 fgraph_ops, one has "vfs_*" filter and > another has "sched_*" filter, those does not cover each other. > > Are there any way to solve this issue? I think my previous series > calls function_graph_enter_ops() directly from trampoline (If it works > correctly...) Yes, but that gets a bit complex, and requires the changing of all archs. If it starts to become a problem, I rather add that as a feature. That is, we can always go back to it. But for now, lets keep the complexity down. -- Steve