Files
cubelinux-kernel/tools/testing/selftests/cpufreq/special-tests.sh
T
Greg Kroah-Hartman 598cf27219 Linux 6.19.3
Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Tested-by: Ronald Warsow <rwarsow@gmx.de>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-02-19 16:33:27 +01:00

117 lines
2.0 KiB
Bash
Executable File

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