torture: Handle jitter for CPUs that cannot be offlined
Currently, jitter.sh assumes that the underlying hypervisor will be configured with all CPUs hotpluggable, with the possible exception of CPU 0. However, there are installations where the hypervisor prohibits offlining, which breaks jitter.sh. This commit therefore lists the CPUs that cannot be offlined up front, and checks for the case where no CPU can be offlined in the loop. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
9aa55ec206
commit
517f17aed0
|
@ -25,6 +25,18 @@ n=1
|
|||
|
||||
starttime=`gawk 'BEGIN { print systime(); }' < /dev/null`
|
||||
|
||||
nohotplugcpus=
|
||||
for i in /sys/devices/system/cpu/cpu[0-9]*
|
||||
do
|
||||
if test -f $i/online
|
||||
then
|
||||
:
|
||||
else
|
||||
curcpu=`echo $i | sed -e 's/^[^0-9]*//'`
|
||||
nohotplugcpus="$nohotplugcpus $curcpu"
|
||||
fi
|
||||
done
|
||||
|
||||
while :
|
||||
do
|
||||
# Check for done.
|
||||
|
@ -35,13 +47,15 @@ do
|
|||
fi
|
||||
|
||||
# Set affinity to randomly selected online CPU
|
||||
cpus=`grep 1 /sys/devices/system/cpu/*/online |
|
||||
sed -e 's,/[^/]*$,,' -e 's/^[^0-9]*//'`
|
||||
|
||||
# Do not leave out poor old cpu0 which may not be hot-pluggable
|
||||
if [ ! -f "/sys/devices/system/cpu/cpu0/online" ]; then
|
||||
cpus="0 $cpus"
|
||||
if cpus=`grep 1 /sys/devices/system/cpu/*/online 2>&1 |
|
||||
sed -e 's,/[^/]*$,,' -e 's/^[^0-9]*//'`
|
||||
then
|
||||
:
|
||||
else
|
||||
cpus=
|
||||
fi
|
||||
# Do not leave out non-hot-pluggable CPUs
|
||||
cpus="$cpus $nohotplugcpus"
|
||||
|
||||
cpumask=`awk -v cpus="$cpus" -v me=$me -v n=$n 'BEGIN {
|
||||
srand(n + me + systime());
|
||||
|
|
Loading…
Reference in New Issue