• Liming Wang's avatar
    function trace: fix a bug of single thread function trace · 66eafebc
    Liming Wang authored
    Impact: fix "no output from tracer" bug caused by ftrace_update_pid_func()
    
    When disabling single thread function trace using
    "echo -1 > set_ftrace_pid", the normal function trace
    has to restore to original function, otherwise the normal
    function trace will not work well.
    
    Without this commit, something like below:
    
    	$ ps |grep 850
    	  850 root      2556 S    -/bin/sh
    	$ echo 850 > /debug/tracing/set_ftrace_pid
    	$ echo function > /debug/tracing/current_tracer
    	$ echo 1 > /debug/tracing/tracing_enabled
    	$ sleep 1
    	$ echo 0 > /debug/tracing/tracing_enabled
    	$ cat /debug/tracing/trace_pipe |wc -l
    	59704
    	$ echo -1 > /debug/tracing/set_ftrace_pid
    	$ echo 1 > /debug/tracing/tracing_enabled
    	$ sleep 1
    	$ echo 0 > /debug/tracing/tracing_enabled
    	$ more /debug/tracing/trace_pipe
    		<====== nothing output now!
    			it should output trace record.
    Signed-off-by: default avatarLiming Wang <liming.wang@windriver.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    66eafebc
ftrace.c 37.2 KB