tools/testing/selftests/cpufreq/cpu.sh

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

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/cpufreq/cpu.sh
Extension
.sh
Size
1290 bytes
Lines
86
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
#
# CPU helpers

# protect against multiple inclusion
if [ $FILE_CPU ]; then
	return 0
else
	FILE_CPU=DONE
fi

source cpufreq.sh

for_each_cpu()
{
	cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
	for cpu in $cpus; do
		$@ $cpu
	done
}

for_each_non_boot_cpu()
{
	cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
	for cpu in $cpus; do
		$@ $cpu
	done
}

#$1: cpu
offline_cpu()
{
	printf "Offline $1\n"
	echo 0 > $CPUROOT/$1/online
}

#$1: cpu
online_cpu()
{
	printf "Online $1\n"
	echo 1 > $CPUROOT/$1/online
}

#$1: cpu
reboot_cpu()
{
	offline_cpu $1
	online_cpu $1
}

# Reboot CPUs
# param: number of times we want to run the loop
reboot_cpus()
{
	printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"

	for i in `seq 1 $1`; do
		for_each_non_boot_cpu offline_cpu
		for_each_non_boot_cpu online_cpu
		printf "\n"
	done

	printf "\n%s\n\n" "------------------------------------------------"
}

# Prints warning for all CPUs with missing cpufreq directory
print_unmanaged_cpus()
{
	for_each_cpu cpu_should_have_cpufreq_directory

Annotation

Implementation Notes