Merge branch 'pm-cpufreq-tests'

Merge cpufreq test updates for 7.3-rc1:

 - Backup and restore governor for cpufreq sptests (Yiwei Lin)

 - Remove unnecessary sudo from quick_shuffle() and remove unused local
   variables from switch_show_governor() in cpufreq selftests (Jinseok
   Kim)

* pm-cpufreq-tests:
  kselftest: cpufreq: Backup and restore governor for sptests
  selftests/cpufreq: Remove unnecessary sudo from quick_shuffle()
  selftests/cpufreq: Remove unused local variables from switch_show_governor()
This commit is contained in:
Rafael J. Wysocki 2026-08-07 20:45:08 +02:00
commit 915d26e758
2 changed files with 37 additions and 7 deletions

View File

@ -16,6 +16,12 @@ source cpufreq.sh
CUR_GOV=
CUR_FREQ=
# Per-policy backup, keyed by policy so multiple policies can be saved at once
# (backup_governor/restore_governor also keep CUR_GOV/CUR_FREQ for callers that
# read them directly).
declare -A SAVED_GOVERNORS
declare -A SAVED_FREQS
# Find governor's directory path
# $1: policy, $2: governor
find_gov_directory()
@ -39,11 +45,13 @@ find_current_governor()
backup_governor()
{
CUR_GOV=$(find_current_governor $1)
SAVED_GOVERNORS[$1]=$CUR_GOV
printf "Governor backup done for $1: $CUR_GOV\n"
if [ $CUR_GOV == "userspace" ]; then
CUR_FREQ=$(find_current_freq $1)
SAVED_FREQS[$1]=$CUR_FREQ
printf "Governor frequency backup done for $1: $CUR_FREQ\n"
fi
@ -53,11 +61,13 @@ backup_governor()
# $1: policy
restore_governor()
{
CUR_GOV=${SAVED_GOVERNORS[$1]}
__switch_governor $1 $CUR_GOV
printf "Governor restored for $1 to $CUR_GOV\n"
if [ $CUR_GOV == "userspace" ]; then
CUR_FREQ=${SAVED_FREQS[$1]}
set_cpu_frequency $1 $CUR_FREQ
printf "Governor frequency restored for $1: $CUR_FREQ\n"
fi
@ -65,6 +75,17 @@ restore_governor()
printf "\n"
}
# Save/restore governors for every policy at once
save_all_governors()
{
for_each_policy backup_governor
}
restore_all_governors()
{
for_each_policy restore_governor
}
# param:
# $1: policy, $2: governor
__switch_governor()
@ -100,11 +121,6 @@ switch_governor()
# $1: policy, $2: governor
switch_show_governor()
{
cur_gov=find_current_governor
if [ $cur_gov == "userspace" ]; then
cur_freq=find_current_freq
fi
# switch governor
__switch_governor $1 $2

View File

@ -40,7 +40,9 @@ simple_lockdep()
{
printf "** Test: Running ${FUNCNAME[0]} **\n"
save_all_governors
for_each_policy __simple_lockdep
restore_all_governors
}
# Test 2
@ -56,7 +58,10 @@ concurrent_lockdep()
{
printf "** Test: Running ${FUNCNAME[0]} **\n"
save_all_governors
for_each_policy_concurrent __concurrent_lockdep
wait
restore_all_governors
}
# Test 3
@ -65,20 +70,26 @@ 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 &
echo ondemand | tee $CPUFREQROOT/policy*/scaling_governor &
echo userspace | tee $CPUFREQROOT/policy*/scaling_governor &
done
wait
}
governor_race()
{
printf "** Test: Running ${FUNCNAME[0]} **\n"
save_all_governors
# run 8 concurrent instances
for I in `seq 8`
do
quick_shuffle &
done
wait
restore_all_governors
}
# Test 4
@ -112,5 +123,8 @@ hotplug_with_updates_cpu()
hotplug_with_updates()
{
save_all_governors
for_each_non_boot_cpu hotplug_with_updates_cpu
wait
restore_all_governors
}