| From 058e297d34a404caaa5ed277de15698d8dc43000 Mon Sep 17 00:00:00 2001 |
| From: Steven Rostedt <srostedt@redhat.com> |
| Date: Fri, 29 Apr 2011 22:35:33 -0400 |
| Subject: ftrace: Only update the function code on write to filter files |
| |
| From: Steven Rostedt <srostedt@redhat.com> |
| |
| commit 058e297d34a404caaa5ed277de15698d8dc43000 upstream. |
| |
| If function tracing is enabled, a read of the filter files will |
| cause the call to stop_machine to update the function trace sites. |
| It should only call stop_machine on write. |
| |
| Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| kernel/trace/ftrace.c | 12 +++++++----- |
| 1 file changed, 7 insertions(+), 5 deletions(-) |
| |
| --- a/kernel/trace/ftrace.c |
| +++ b/kernel/trace/ftrace.c |
| @@ -2367,14 +2367,16 @@ ftrace_regex_release(struct inode *inode |
| ftrace_match_records(parser->buffer, parser->idx, enable); |
| } |
| |
| - mutex_lock(&ftrace_lock); |
| - if (ftrace_start_up && ftrace_enabled) |
| - ftrace_run_update_code(FTRACE_ENABLE_CALLS); |
| - mutex_unlock(&ftrace_lock); |
| - |
| trace_parser_put(parser); |
| kfree(iter); |
| |
| + if (file->f_mode & FMODE_WRITE) { |
| + mutex_lock(&ftrace_lock); |
| + if (ftrace_start_up && ftrace_enabled) |
| + ftrace_run_update_code(FTRACE_ENABLE_CALLS); |
| + mutex_unlock(&ftrace_lock); |
| + } |
| + |
| mutex_unlock(&ftrace_regex_lock); |
| return 0; |
| } |