| #!/bin/sh |
| |
| # Copyright 2021 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| # Runs on an android device itself to set the frequency scaling governor for all |
| # CPUs (default performance). |
| |
| ################################### WARNING #################################### |
| # This will overheat the phone if it's not on a cooling plate, resulting in # |
| # thermal throttling. To prevent anything catching on fire, the actual CPU # |
| # frequencies will be throttled to below the maximum, skewing your results. # |
| ################################################################################ |
| |
| set -euo pipefail |
| |
| GOVERNOR="${1:-performance}" |
| |
| echo "CPU info (before changing governor):" |
| echo 'cpu\tgovernor\tcur\tmin\tmax' |
| echo "------------------------------------------------" |
| for i in `cat /sys/devices/system/cpu/present | tr '-' ' ' | xargs seq`; do \ |
| echo "cpu${i}" | paste \ |
| - \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/scaling_governor" \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/cpuinfo_cur_freq" \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/cpuinfo_min_freq" \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/cpuinfo_max_freq"; \ |
| done |
| |
| echo "Setting CPU frequency governor to ${GOVERNOR}" |
| |
| for i in `cat /sys/devices/system/cpu/present | tr '-' ' ' | xargs seq`; do \ |
| echo "${GOVERNOR}" > \ |
| "/sys/devices/system/cpu/cpu${i?}/cpufreq/scaling_governor"; \ |
| done |
| |
| echo "CPU info (after changing governor):" |
| echo 'cpu\tgovernor\tcur\tmin\tmax' |
| echo "------------------------------------------------" |
| for i in `cat /sys/devices/system/cpu/present | tr '-' ' ' | xargs seq`; do \ |
| echo "cpu${i}" | paste \ |
| - \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/scaling_governor" \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/cpuinfo_cur_freq" \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/cpuinfo_min_freq" \ |
| "/sys/devices/system/cpu/cpu${i}/cpufreq/cpuinfo_max_freq"; \ |
| done |