File Index
Files and directories
Sign in
FILE

special-tests.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/cpufreq/special-tests.sh BASH
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3#
  4# Special test cases reported by people
  5
  6# Testcase 1: Reported here: http://marc.info/?l=linux-pm&m=140618592709858&w=2
  7
  8# protect against multiple inclusion
  9if [ $FILE_SPECIAL ]; then
 10	return 0
 11else
 12	FILE_SPECIAL=DONE
 13fi
 14
 15source cpu.sh
 16source cpufreq.sh
 17source governor.sh
 18
 19# Test 1
 20# $1: policy
 21__simple_lockdep()
 22{
 23	# switch to ondemand
 24	__switch_governor $1 "ondemand"
 25
 26	# cat ondemand files
 27	local ondir=$(find_gov_directory $1 "ondemand")
 28	if [ -z $ondir ]; then
 29		printf "${FUNCNAME[0]}Ondemand directory not created, quit"
 30		return
 31	fi
 32
 33	cat $ondir/*
 34
 35	# switch to conservative
 36	__switch_governor $1 "conservative"
 37}
 38
 39simple_lockdep()
 40{
 41	printf "** Test: Running ${FUNCNAME[0]} **\n"
 42
 43	for_each_policy __simple_lockdep
 44}
 45
 46# Test 2
 47# $1: policy
 48__concurrent_lockdep()
 49{
 50	for i in `seq 0 100`; do
 51		__simple_lockdep $1
 52	done
 53}
 54
 55concurrent_lockdep()
 56{
 57	printf "** Test: Running ${FUNCNAME[0]} **\n"
 58
 59	for_each_policy_concurrent __concurrent_lockdep
 60}
 61
 62# Test 3
 63quick_shuffle()
 64{
 65	# this is called concurrently from governor_race
 66	for I in `seq 1000`
 67	do
 68		echo ondemand | sudo tee $CPUFREQROOT/policy*/scaling_governor &
 69		echo userspace | sudo tee $CPUFREQROOT/policy*/scaling_governor &
 70	done
 71}
 72
 73governor_race()
 74{
 75	printf "** Test: Running ${FUNCNAME[0]} **\n"
 76
 77	# run 8 concurrent instances
 78	for I in `seq 8`
 79	do
 80		quick_shuffle &
 81	done
 82}
 83
 84# Test 4
 85# $1: cpu
 86hotplug_with_updates_cpu()
 87{
 88	local filepath="$CPUROOT/$1/cpufreq"
 89
 90	# switch to ondemand
 91	__switch_governor_for_cpu $1 "ondemand"
 92
 93	for i in `seq 1 5000`
 94	do
 95		reboot_cpu $1
 96	done &
 97
 98	local freqs=$(cat $filepath/scaling_available_frequencies)
 99	local oldfreq=$(cat $filepath/scaling_min_freq)
100
101	for j in `seq 1 5000`
102	do
103		# Set all frequencies one-by-one
104		for freq in $freqs; do
105			echo $freq > $filepath/scaling_min_freq
106		done
107	done
108
109	# restore old freq
110	echo $oldfreq > $filepath/scaling_min_freq
111}
112
113hotplug_with_updates()
114{
115	for_each_non_boot_cpu hotplug_with_updates_cpu
116}
~/ Read-only file preview.