]> git.baikalelectronics.ru Git - kernel.git/commit
ftrace: Check both notrace and filter for old hash
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Tue, 13 Jan 2015 19:03:38 +0000 (14:03 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 15 Jan 2015 14:37:33 +0000 (09:37 -0500)
commiteecccb8342a09da313d865d528c834042e7e8f50
tree4372346d3485319f7b98acccbbaba6d41887fda0
parent01473c2d026e67931dc055cffe05935f4a6cee3f
ftrace: Check both notrace and filter for old hash

Using just the filter for checking for trampolines or regs is not enough
when updating the code against the records that represent all functions.
Both the filter hash and the notrace hash need to be checked.

To trigger this bug (using trace-cmd and perf):

 # perf probe -a do_fork
 # trace-cmd start -B foo -e probe
 # trace-cmd record -p function_graph -n do_fork sleep 1

The trace-cmd record at the end clears the filter before it disables
function_graph tracing and then that causes the accounting of the
ftrace function records to become incorrect and causes ftrace to bug.

Link: http://lkml.kernel.org/r/20150114154329.358378039@goodmis.org
Cc: stable@vger.kernel.org
[ still need to switch old_hash_ops to old_ops_hash ]
Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ftrace.c