mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import multiprocessing
|
|
import os
|
|
import traceback
|
|
|
|
from bauh.commons.system import new_root_subprocess
|
|
|
|
|
|
def supports_performance_mode():
|
|
return os.path.exists('/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor')
|
|
|
|
|
|
def all_in_performance() -> bool:
|
|
for i in range(multiprocessing.cpu_count()):
|
|
with open('/sys/devices/system/cpu/cpu{}/cpufreq/scaling_governor'.format(i)) as f:
|
|
if f.read().strip() != 'performance':
|
|
return False
|
|
|
|
return False
|
|
|
|
|
|
def set_mode(mode: str, root_password: str):
|
|
new_gov_file = '/tmp/bauh_scaling_governor'
|
|
with open(new_gov_file, 'w+') as f:
|
|
f.write(mode)
|
|
|
|
for i in range(multiprocessing.cpu_count()):
|
|
try:
|
|
gov_file = '/sys/devices/system/cpu/cpu{}/cpufreq/scaling_governor'.format(i)
|
|
replace = new_root_subprocess(['cp', new_gov_file, gov_file], root_password=root_password)
|
|
replace.wait()
|
|
except:
|
|
traceback.print_exc()
|
|
|
|
if os.path.exists(new_gov_file):
|
|
try:
|
|
os.remove(new_gov_file)
|
|
except:
|
|
traceback.print_exc()
|