linuxOS_AP05/debian/test/rockchip-test/cpu/cpu_freq_stress_test.sh
2025-09-26 09:40:02 +08:00

49 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
usage()
{
echo "Usage: cpu_freq_test.sh [test_second] [every_freq_stay_second]"
echo "example: cpu_freq_test.sh 3600 30"
echo "means cpu_freq_test.sh will run 1 hour and every cpu frequency stay 10s"
}
echo "test will run $1 seconds"
echo "every cpu frqeucny will stay $2 seconds"
#disalbe thermal
if [ -e /sys/class/thermal/thermal_zone0 ]; then
echo user_space >/sys/class/thermal/thermal_zone0/policy
fi
if [ -e /sys/class/thermal/thermal_zone1 ]; then
echo user_space > /sys/class/thermal/thermal_zone1/policy
fi
#caculate how many cpu core
cpu_cnt=`cat /proc/cpuinfo | grep processor | sort | uniq | wc -l`
stressapptest -s $1 --pause_delay 10 --pause_duration 1 -W --stop_on_errors -M 128&
RANDOM=$$$(date +%s)
time_cnt=0
while true; do
if [ $time_cnt -ge $1 ]
then
echo "======TEST SUCCESSFUL, QUIT====="
exit 0
fi
for d in /sys/devices/system/cpu/cpufreq/*; do
echo userspace > $d/scaling_governor
read -a FREQS < $d/scaling_available_frequencies
FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
echo Set $d freq to ${FREQ}
echo ${FREQ} > $d/scaling_setspeed
cur_freq=`cat $d/scaling_cur_freq`
echo Get "***$d freq $cur_freq***"
done
sleep $2
let "time_cnt=$time_cnt+$2"
done