cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cpu.sh (1290B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3#
      4# CPU helpers
      5
      6# protect against multiple inclusion
      7if [ $FILE_CPU ]; then
      8	return 0
      9else
     10	FILE_CPU=DONE
     11fi
     12
     13source cpufreq.sh
     14
     15for_each_cpu()
     16{
     17	cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
     18	for cpu in $cpus; do
     19		$@ $cpu
     20	done
     21}
     22
     23for_each_non_boot_cpu()
     24{
     25	cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
     26	for cpu in $cpus; do
     27		$@ $cpu
     28	done
     29}
     30
     31#$1: cpu
     32offline_cpu()
     33{
     34	printf "Offline $1\n"
     35	echo 0 > $CPUROOT/$1/online
     36}
     37
     38#$1: cpu
     39online_cpu()
     40{
     41	printf "Online $1\n"
     42	echo 1 > $CPUROOT/$1/online
     43}
     44
     45#$1: cpu
     46reboot_cpu()
     47{
     48	offline_cpu $1
     49	online_cpu $1
     50}
     51
     52# Reboot CPUs
     53# param: number of times we want to run the loop
     54reboot_cpus()
     55{
     56	printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
     57
     58	for i in `seq 1 $1`; do
     59		for_each_non_boot_cpu offline_cpu
     60		for_each_non_boot_cpu online_cpu
     61		printf "\n"
     62	done
     63
     64	printf "\n%s\n\n" "------------------------------------------------"
     65}
     66
     67# Prints warning for all CPUs with missing cpufreq directory
     68print_unmanaged_cpus()
     69{
     70	for_each_cpu cpu_should_have_cpufreq_directory
     71}
     72
     73# Counts CPUs with cpufreq directories
     74count_cpufreq_managed_cpus()
     75{
     76	count=0;
     77
     78	for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do
     79		if [ -d $CPUROOT/$cpu/cpufreq ]; then
     80			let count=count+1;
     81		fi
     82	done
     83
     84	echo $count;
     85}