Message ID | 20240506233305.215735-1-linux@treblig.org (mailing list archive) |
---|---|
State | Accepted |
Commit | d2cc859cc8885e98907cffd47b990491c5321a80 |
Headers | show |
Series | ftrace: Remove unused global 'ftrace_direct_func_count' | expand |
* linux@treblig.org (linux@treblig.org) wrote: > From: "Dr. David Alan Gilbert" <linux@treblig.org> > > Commit 8788ca164eb4b ("ftrace: Remove the legacy _ftrace_direct API") > stopped setting the 'ftrace_direct_func_count' variable, but left > it around. Clean it up. > > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> FYI this is on top of my earlier 'ftrace: Remove unused list 'ftrace_direct_funcs' Dave > --- > include/linux/ftrace.h | 2 -- > kernel/trace/fgraph.c | 11 ----------- > kernel/trace/ftrace.c | 1 - > 3 files changed, 14 deletions(-) > > diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h > index b01cca36147ff..e3a83ebd1b333 100644 > --- a/include/linux/ftrace.h > +++ b/include/linux/ftrace.h > @@ -413,7 +413,6 @@ struct ftrace_func_entry { > }; > > #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS > -extern int ftrace_direct_func_count; > unsigned long ftrace_find_rec_direct(unsigned long ip); > int register_ftrace_direct(struct ftrace_ops *ops, unsigned long addr); > int unregister_ftrace_direct(struct ftrace_ops *ops, unsigned long addr, > @@ -425,7 +424,6 @@ void ftrace_stub_direct_tramp(void); > > #else > struct ftrace_ops; > -# define ftrace_direct_func_count 0 > static inline unsigned long ftrace_find_rec_direct(unsigned long ip) > { > return 0; > diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c > index c83c005e654e3..a130b2d898f7c 100644 > --- a/kernel/trace/fgraph.c > +++ b/kernel/trace/fgraph.c > @@ -125,17 +125,6 @@ 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. > - * Ex: BPF trampoline may call original function and may skip frame > - * depending on type of BPF programs attached. > - */ > - 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; > > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > index b18b4ece3d7c9..adf34167c3418 100644 > --- a/kernel/trace/ftrace.c > +++ b/kernel/trace/ftrace.c > @@ -2538,7 +2538,6 @@ ftrace_find_unique_ops(struct dyn_ftrace *rec) > /* Protected by rcu_tasks for reading, and direct_mutex for writing */ > static struct ftrace_hash __rcu *direct_functions = EMPTY_HASH; > static DEFINE_MUTEX(direct_mutex); > -int ftrace_direct_func_count; > > /* > * Search the direct_functions hash to see if the given instruction pointer > -- > 2.45.0 >
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index b01cca36147ff..e3a83ebd1b333 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -413,7 +413,6 @@ struct ftrace_func_entry { }; #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS -extern int ftrace_direct_func_count; unsigned long ftrace_find_rec_direct(unsigned long ip); int register_ftrace_direct(struct ftrace_ops *ops, unsigned long addr); int unregister_ftrace_direct(struct ftrace_ops *ops, unsigned long addr, @@ -425,7 +424,6 @@ void ftrace_stub_direct_tramp(void); #else struct ftrace_ops; -# define ftrace_direct_func_count 0 static inline unsigned long ftrace_find_rec_direct(unsigned long ip) { return 0; diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c index c83c005e654e3..a130b2d898f7c 100644 --- a/kernel/trace/fgraph.c +++ b/kernel/trace/fgraph.c @@ -125,17 +125,6 @@ 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. - * Ex: BPF trampoline may call original function and may skip frame - * depending on type of BPF programs attached. - */ - 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; diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index b18b4ece3d7c9..adf34167c3418 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -2538,7 +2538,6 @@ ftrace_find_unique_ops(struct dyn_ftrace *rec) /* Protected by rcu_tasks for reading, and direct_mutex for writing */ static struct ftrace_hash __rcu *direct_functions = EMPTY_HASH; static DEFINE_MUTEX(direct_mutex); -int ftrace_direct_func_count; /* * Search the direct_functions hash to see if the given instruction pointer