Commit 3425a200 authored by Naveen N Rao's avatar Naveen N Rao Committed by Shuah Khan
Browse files

selftests/ftrace: Add test to exercize function tracer across cpu hotplug



Add a test to exercize cpu hotplug with the function tracer active to
ensure that sensitive functions in idle path are excluded from being
traced. This helps catch issues such as the one fixed by commit
4b3338aa ("powerpc/ftrace: Fix stack teardown in ftrace_no_trace").

Signed-off-by: default avatarNaveen N Rao <naveen@kernel.org>
Acked-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 5bc9dc06
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# description: ftrace - function trace across cpu hotplug
# requires: function:tracer

if ! which nproc ; then
  nproc() {
    ls -d /sys/devices/system/cpu/cpu[0-9]* | wc -l
  }
fi

NP=`nproc`

if [ $NP -eq 1 ] ;then
  echo "We cannot test cpu hotplug in UP environment"
  exit_unresolved
fi

# Find online cpu
for i in /sys/devices/system/cpu/cpu[1-9]*; do
	if [ -f $i/online ] && [ "$(cat $i/online)" = "1" ]; then
		cpu=$i
		break
	fi
done

if [ -z "$cpu" ]; then
	echo "We cannot test cpu hotplug with a single cpu online"
	exit_unresolved
fi

echo 0 > tracing_on
echo > trace

: "Set $(basename $cpu) offline/online with function tracer enabled"
echo function > current_tracer
echo 1 > tracing_on
(echo 0 > $cpu/online)
(echo "forked"; sleep 1)
(echo 1 > $cpu/online)
echo 0 > tracing_on
echo nop > current_tracer