
blogsportgruppe
By: a guest on Mar 22nd, 2009 | syntax:
Python | size: 1.16 KB | hits: 795 | expires: Never
def _get_file_content(file_path):
try:
f = open(file_path, 'r')
content = f.read()
f.close()
return content
except:
pass
def get_current_freq():
content = _get_file_content('/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq')
return int(content)
def get_min_freq():
content = _get_file_content('/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq')
return int(content)
def get_max_freq():
content = _get_file_content('/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq')
return int(content)
def get_lastminutes_loadavg():
content = _get_file_content('/proc/loadavg')
return float(content.split()[0])
def set_freq(freq):
import subprocess
p = subprocess.Popen(['cpufreq-set', '-f', '%d' % freq])
p.wait()
load_avg = get_lastminutes_loadavg()
cur_freq = get_current_freq()
min_freq = get_min_freq()
max_freq = get_max_freq()
min_max_ratio = float(min_freq) / float(max_freq)
if cur_freq == min_freq and load_avg > 1:
set_freq(max_freq)
if cur_freq == max_freq and load_avg < min_max_ratio:
set_freq(min_freq)