Messages in this thread Patch in this message | | | Date | Sat, 31 Aug 2013 01:11:22 -0400 | From | Steven Rostedt <> | Subject | [RFC][PATCH 05/18 v2] ftrace: Do not display non safe RCU functions in available_filter_functions |
| |
From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
As available_filter_functions file displays functions that are generally available for tracing, do not show the ones that are RCU unsafe. Otherwise it may be confusing for perf users to see these functions in this file but not be able to trace them.
Cc: Jiri Olsa <jolsa@redhat.com> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> --- include/linux/ftrace.h | 1 + kernel/trace/ftrace.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 1d17a82..4709264 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -411,6 +411,7 @@ enum { FTRACE_ITER_DO_HASH = (1 << 3), FTRACE_ITER_HASH = (1 << 4), FTRACE_ITER_ENABLED = (1 << 5), + FTRACE_ITER_NO_UNSAFE = (1 << 6), }; void arch_ftrace_update_code(int command); diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 06504b2..be87ac9 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -2645,7 +2645,10 @@ t_next(struct seq_file *m, void *v, loff_t *pos) !ftrace_lookup_ip(ops->notrace_hash, rec->ip)) || ((iter->flags & FTRACE_ITER_ENABLED) && - !(rec->flags & FTRACE_FL_ENABLED))) { + !(rec->flags & FTRACE_FL_ENABLED)) || + + ((iter->flags & FTRACE_ITER_NO_UNSAFE) && + ftrace_lookup_ip(ftrace_unsafe_rcu, rec->ip))) { rec = NULL; goto retry; @@ -2773,6 +2776,7 @@ ftrace_avail_open(struct inode *inode, struct file *file) iter = __seq_open_private(file, &show_ftrace_seq_ops, sizeof(*iter)); if (iter) { iter->pg = ftrace_pages_start; + iter->flags = FTRACE_ITER_NO_UNSAFE; iter->ops = &global_ops; } -- 1.7.10.4
| |