• KOSAKI Motohiro's avatar
    tracing: fix deadlock when setting set_ftrace_pid · 10dd3ebe
    KOSAKI Motohiro authored
    Impact: fix deadlock while using set_ftrace_pid
    
    Reproducer:
    
    	# cd /sys/kernel/debug/tracing
    	# echo $$ > set_ftrace_pid
    
    	then, console becomes hung.
    
    Details:
    
    when writing set_ftracepid, kernel callstack is following
    
    	ftrace_pid_write()
    		mutex_lock(&ftrace_lock);
    		ftrace_update_pid_func()
    			mutex_lock(&ftrace_lock);
    			mutex_unlock(&ftrace_lock);
    		mutex_unlock(&ftrace_lock);
    
    then, system always deadlocks when ftrace_pid_write() is called.
    
    In past days, ftrace_pid_write() used ftrace_start_lock, but
    commit e6ea44e9 consolidated
    ftrace_start_lock to ftrace_lock.
    Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Reviewed-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Steven Rostedt <srostedt@redhat.com>
    LKML-Reference: <20090306151155.0778.A69D9226@jp.fujitsu.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    10dd3ebe
ftrace.c 55.7 KB