Thread (76 messages) flat view 76 messages, 6 authors, 2021-07-07

Re: [PATCH 03/19] x86/ftrace: Make function graph use ftrace directly

From: Jiri Olsa <hidden>
Date: 2021-06-08 18:54:17
Also in: bpf

On Tue, Jun 08, 2021 at 11:35:58AM -0700, Andrii Nakryiko wrote:

SNIP
quoted
diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c
index b8a0d1d564fb..58e96b45e9da 100644
--- a/kernel/trace/fgraph.c
+++ b/kernel/trace/fgraph.c
@@ -115,6 +115,7 @@ int function_graph_enter(unsigned long ret, unsigned long func,
 {
        struct ftrace_graph_ent trace;

+#ifndef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS
        /*
         * Skip graph tracing if the return location is served by direct trampoline,
         * since call sequence and return addresses are unpredictable anyway.
@@ -124,6 +125,7 @@ int function_graph_enter(unsigned long ret, unsigned long func,
        if (ftrace_direct_func_count &&
            ftrace_find_rec_direct(ret - MCOUNT_INSN_SIZE))
                return -EBUSY;
+#endif
        trace.func = func;
        trace.depth = ++current->curr_ret_depth;
@@ -333,10 +335,10 @@ unsigned long ftrace_graph_ret_addr(struct task_struct *task, int *idx,
 #endif /* HAVE_FUNCTION_GRAPH_RET_ADDR_PTR */

 static struct ftrace_ops graph_ops = {
-       .func                   = ftrace_stub,
+       .func                   = ftrace_graph_func,
        .flags                  = FTRACE_OPS_FL_INITIALIZED |
-                                  FTRACE_OPS_FL_PID |
-                                  FTRACE_OPS_FL_STUB,
+                                  FTRACE_OPS_FL_PID
+                                  FTRACE_OPS_GRAPH_STUB,
nit: this looks so weird... Why not define FTRACE_OPS_GRAPH_STUB as
zero in case of #ifdef ftrace_graph_func? Then it will be natural and
correctly looking | FTRACE_OPS_GRAPH_STUB?
ok, I can change that

thanks,
jirka
quoted
 #ifdef FTRACE_GRAPH_TRAMP_ADDR
        .trampoline             = FTRACE_GRAPH_TRAMP_ADDR,
        /* trampoline_size is only needed for dynamically allocated tramps */
--
2.31.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help