ftrace: Cleanup regex_lock and ftrace_lock around hash updating
authorMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Thu, 9 May 2013 05:44:21 +0000 (14:44 +0900)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 10 May 2013 00:11:48 +0000 (20:11 -0400)
commit3f2367ba7cbf13ec0f3f1e93b833a7eacd1ab4b8
tree81bac89b0b20458cb8505a3bdef4b9189ff4057e
parentf04f24fb7e48d446bd89a01c6056571f25972511
ftrace: Cleanup regex_lock and ftrace_lock around hash updating

Cleanup regex_lock and ftrace_lock locking points around
ftrace_ops hash update code.

The new rule is that regex_lock protects ops->*_hash
read-update-write code for each ftrace_ops. Usually,
hash update is done by following sequence.

1. allocate a new local hash and copy the original hash.
2. update the local hash.
3. move(actually, copy) back the local hash to ftrace_ops.
4. update ftrace entries if needed.
5. release the local hash.

This makes regex_lock protect #1-#4, and ftrace_lock
to protect #3, #4 and adding and removing ftrace_ops from the
ftrace_ops_list. The ftrace_lock protects #3 as well because
the move functions update the entries too.

Link: http://lkml.kernel.org/r/20130509054421.30398.83411.stgit@mhiramat-M0-7522
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ftrace.c