rcutorture: Fix jitter.sh spin time

An embarrassing syntax error in jitter.sh makes for fixed spin time.
This commit therefore makes it be variable, as intended, albeit with
very coarse-grained adjustment.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
Paul E. McKenney
2025-07-10 16:41:53 -07:00
parent 61399e0c54
commit e95f6ccdbc

View File

@@ -39,6 +39,22 @@ do
fi
done
# Uses global variables startsecs, startns, endsecs, endns, and limit.
# Exit code is success for time not yet elapsed and failure otherwise.
function timecheck {
local done=`awk -v limit=$limit \
-v startsecs=$startsecs \
-v startns=$startns \
-v endsecs=$endsecs \
-v endns=$endns < /dev/null '
BEGIN {
delta = (endsecs - startsecs) * 1000 * 1000;
delta += int((endns - startns) / 1000);
print delta >= limit;
}'`
return $done
}
while :
do
# Check for done.
@@ -85,15 +101,20 @@ do
n=$(($n+1))
sleep .$sleeptime
# Spin a random duration
# Spin a random duration, but with rather coarse granularity.
limit=`awk -v me=$me -v n=$n -v spinmax=$spinmax 'BEGIN {
srand(n + me + systime());
printf("%06d", int(rand() * spinmax));
}' < /dev/null`
n=$(($n+1))
for i in {1..$limit}
startsecs=`date +%s`
startns=`date +%N`
endsecs=$startns
endns=$endns
while timecheck
do
echo > /dev/null
endsecs=`date +%s`
endns=`date +%N`
done
done