1#!/bin/bash 2# Copyright 2014 the V8 project authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6CPUPATH=/sys/devices/system/cpu 7 8MAXID=$(cat $CPUPATH/present | awk -F- '{print $NF}') 9 10set_governor() { 11 echo "Setting CPU frequency governor to \"$1\"" 12 for (( i=0; i<=$MAXID; i++ )); do 13 echo "$1" > $CPUPATH/cpu$i/cpufreq/scaling_governor 14 done 15} 16 17dual_core() { 18 echo "Switching to dual-core mode" 19 for (( i=2; i<=$MAXID; i++ )); do 20 echo 0 > $CPUPATH/cpu$i/online 21 done 22} 23 24single_core() { 25 echo "Switching to single-core mode" 26 for (( i=1; i<=$MAXID; i++ )); do 27 echo 0 > $CPUPATH/cpu$i/online 28 done 29} 30 31 32all_cores() { 33 echo "Reactivating all CPU cores" 34 for (( i=2; i<=$MAXID; i++ )); do 35 echo 1 > $CPUPATH/cpu$i/online 36 done 37} 38 39case "$1" in 40 fast | performance) 41 set_governor "performance" 42 ;; 43 slow | powersave) 44 set_governor "powersave" 45 ;; 46 default | ondemand) 47 set_governor "ondemand" 48 ;; 49 dualcore | dual) 50 dual_core 51 ;; 52 singlecore | single) 53 single_core 54 ;; 55 allcores | all) 56 all_cores 57 ;; 58 *) 59 echo "Usage: $0 fast|slow|default|singlecore|dualcore|all" 60 exit 1 61 ;; 62esac 63