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