tools/testing/selftests/cpufreq/special-tests.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/cpufreq/special-tests.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/cpufreq/special-tests.sh
Extension
.sh
Size
1997 bytes
Lines
117
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

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

Annotation

Implementation Notes