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.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
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
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.