43 lines
874 B
Bash
43 lines
874 B
Bash
#!/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
|