• Masami Hiramatsu's avatar
    ftrace: Cleanup regex_lock and ftrace_lock around hash updating · 3f2367ba
    Masami Hiramatsu authored
    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: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    3f2367ba
ftrace.c 108 KB