forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.0 KiB
116 lines
2.0 KiB
#!/bin/bash |
|
# SPDX-License-Identifier: GPL-2.0 |
|
# |
|
# Special test cases reported by people |
|
|
|
# Testcase 1: Reported here: http://marc.info/?l=linux-pm&m=140618592709858&w=2 |
|
|
|
# protect against multiple inclusion |
|
if [ $FILE_SPECIAL ]; then |
|
return 0 |
|
else |
|
FILE_SPECIAL=DONE |
|
fi |
|
|
|
source cpu.sh |
|
source cpufreq.sh |
|
source governor.sh |
|
|
|
# Test 1 |
|
# $1: policy |
|
__simple_lockdep() |
|
{ |
|
# switch to ondemand |
|
__switch_governor $1 "ondemand" |
|
|
|
# cat ondemand files |
|
local ondir=$(find_gov_directory $1 "ondemand") |
|
if [ -z $ondir ]; then |
|
printf "${FUNCNAME[0]}Ondemand directory not created, quit" |
|
return |
|
fi |
|
|
|
cat $ondir/* |
|
|
|
# switch to conservative |
|
__switch_governor $1 "conservative" |
|
} |
|
|
|
simple_lockdep() |
|
{ |
|
printf "** Test: Running ${FUNCNAME[0]} **\n" |
|
|
|
for_each_policy __simple_lockdep |
|
} |
|
|
|
# Test 2 |
|
# $1: policy |
|
__concurrent_lockdep() |
|
{ |
|
for i in `seq 0 100`; do |
|
__simple_lockdep $1 |
|
done |
|
} |
|
|
|
concurrent_lockdep() |
|
{ |
|
printf "** Test: Running ${FUNCNAME[0]} **\n" |
|
|
|
for_each_policy_concurrent __concurrent_lockdep |
|
} |
|
|
|
# Test 3 |
|
quick_shuffle() |
|
{ |
|
# this is called concurrently from governor_race |
|
for I in `seq 1000` |
|
do |
|
echo ondemand | sudo tee $CPUFREQROOT/policy*/scaling_governor & |
|
echo userspace | sudo tee $CPUFREQROOT/policy*/scaling_governor & |
|
done |
|
} |
|
|
|
governor_race() |
|
{ |
|
printf "** Test: Running ${FUNCNAME[0]} **\n" |
|
|
|
# run 8 concurrent instances |
|
for I in `seq 8` |
|
do |
|
quick_shuffle & |
|
done |
|
} |
|
|
|
# Test 4 |
|
# $1: cpu |
|
hotplug_with_updates_cpu() |
|
{ |
|
local filepath="$CPUROOT/$1/cpufreq" |
|
|
|
# switch to ondemand |
|
__switch_governor_for_cpu $1 "ondemand" |
|
|
|
for i in `seq 1 5000` |
|
do |
|
reboot_cpu $1 |
|
done & |
|
|
|
local freqs=$(cat $filepath/scaling_available_frequencies) |
|
local oldfreq=$(cat $filepath/scaling_min_freq) |
|
|
|
for j in `seq 1 5000` |
|
do |
|
# Set all frequencies one-by-one |
|
for freq in $freqs; do |
|
echo $freq > $filepath/scaling_min_freq |
|
done |
|
done |
|
|
|
# restore old freq |
|
echo $oldfreq > $filepath/scaling_min_freq |
|
} |
|
|
|
hotplug_with_updates() |
|
{ |
|
for_each_non_boot_cpu hotplug_with_updates_cpu |
|
}
|
|
|