8e8a243c6058803c8356ad4c75dce601bd0cd737
[platform/upstream/nodejs.git] / deps / v8 / tools / cpu.sh
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
6 CPUPATH=/sys/devices/system/cpu
7
8 MAXID=$(cat $CPUPATH/present | awk -F- '{print $NF}')
9
10 set_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
17 dual_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
24 single_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
32 all_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
39 case "$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     ;;
62 esac