blob: 8e8a243c6058803c8356ad4c75dce601bd0cd737 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001#!/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