123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #!/bin/bash
- # Copyright 2014 the V8 project authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- CPUPATH=/sys/devices/system/cpu
- MAXID=$(cat $CPUPATH/present | awk -F- '{print $NF}')
- set_governor() {
- echo "Setting CPU frequency governor to \"$1\""
- for (( i=0; i<=$MAXID; i++ )); do
- echo "$1" > $CPUPATH/cpu$i/cpufreq/scaling_governor
- done
- }
- enable_cores() {
- # $1: How many cores to enable.
- for (( i=1; i<=$MAXID; i++ )); do
- if [ "$i" -lt "$1" ]; then
- echo 1 > $CPUPATH/cpu$i/online
- else
- echo 0 > $CPUPATH/cpu$i/online
- fi
- done
- }
- dual_core() {
- echo "Switching to dual-core mode"
- enable_cores 2
- }
- single_core() {
- echo "Switching to single-core mode"
- enable_cores 1
- }
- all_cores() {
- echo "Reactivating all CPU cores"
- enable_cores $((MAXID+1))
- }
- limit_cores() {
- # $1: How many cores to enable.
- echo "Limiting to $1 cores"
- enable_cores $1
- }
- case "$1" in
- fast | performance)
- set_governor "performance"
- ;;
- slow | powersave)
- set_governor "powersave"
- ;;
- default | ondemand)
- set_governor "ondemand"
- ;;
- dualcore | dual)
- dual_core
- ;;
- singlecore | single)
- single_core
- ;;
- allcores | all)
- all_cores
- ;;
- limit_cores)
- if [ $# -ne 2 ]; then
- echo "Usage $0 limit_cores <num>"
- exit 1
- fi
- limit_cores $2
- ;;
- *)
- echo "Usage: $0 fast|slow|default|singlecore|dualcore|all|limit_cores"
- exit 1
- ;;
- esac
|