123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #!/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
- }
|