selftests: ftrace: Add check for function-fork before running pid filter test

Have the func-filter-pid test check for the function-fork option before
testing it. It can still test the pid filtering, but will stop before
testing the function-fork option for children inheriting the pids.
This allows the test to be added before the function-fork feature, but after
a bug fix that triggers one of the bugs the test can cause.

Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 093be89a
...@@ -19,10 +19,19 @@ if [ ! -f set_ftrace_filter ]; then ...@@ -19,10 +19,19 @@ if [ ! -f set_ftrace_filter ]; then
exit_unsupported exit_unsupported
fi fi
do_function_fork=1
if [ ! -f options/function-fork ]; then
do_function_fork=0
echo "no option for function-fork found. Option will not be tested."
fi
read PID _ < /proc/self/stat read PID _ < /proc/self/stat
# default value of function-fork option if [ $do_function_fork -eq 1 ]; then
orig_value=`grep function-fork trace_options` # default value of function-fork option
orig_value=`grep function-fork trace_options`
fi
do_reset() { do_reset() {
reset_tracer reset_tracer
...@@ -31,6 +40,10 @@ do_reset() { ...@@ -31,6 +40,10 @@ do_reset() {
echo > set_ftrace_filter echo > set_ftrace_filter
echo > set_ftrace_pid echo > set_ftrace_pid
if [ $do_function_fork -eq 0 ]; then
return
fi
echo $orig_value > trace_options echo $orig_value > trace_options
} }
...@@ -53,8 +66,10 @@ do_test() { ...@@ -53,8 +66,10 @@ do_test() {
echo $PID > set_ftrace_pid echo $PID > set_ftrace_pid
echo function > current_tracer echo function > current_tracer
# don't allow children to be traced if [ $do_function_fork -eq 1 ]; then
echo nofunction-fork > trace_options # don't allow children to be traced
echo nofunction-fork > trace_options
fi
enable_tracing enable_tracing
yield yield
...@@ -70,6 +85,10 @@ do_test() { ...@@ -70,6 +85,10 @@ do_test() {
disable_tracing disable_tracing
clear_trace clear_trace
if [ $do_function_fork -eq 0 ]; then
return
fi
# allow children to be traced # allow children to be traced
echo function-fork > trace_options echo function-fork > trace_options
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment