107 lines
2.1 KiB
Bash
107 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius)
|
|
|
|
. /etc/os-release
|
|
|
|
get_threads() {
|
|
for THREAD in $(seq 1 1 $(find /sys/devices/system/cpu -name online | wc -l))
|
|
do
|
|
echo ${THREAD}
|
|
done
|
|
echo all
|
|
}
|
|
|
|
set_online_threads() {
|
|
AVAILABLE_THREADS=$(($(find /sys/devices/system/cpu -name online | wc -l) - 1))
|
|
MODE=${2}
|
|
if [ -z "${MODE}" ]
|
|
then
|
|
MODE=0
|
|
fi
|
|
case ${1} in
|
|
all)
|
|
THREADS=0
|
|
MODE="1"
|
|
;;
|
|
0)
|
|
THREADS=1
|
|
;;
|
|
*)
|
|
THREADS=${1}
|
|
;;
|
|
esac
|
|
|
|
for thread in $(seq 0 1 ${THREADS})
|
|
do
|
|
echo 1 | tee /sys/devices/system/cpu/cpu${thread}/online >/dev/null 2>&1
|
|
done
|
|
|
|
for thread in $(seq ${THREADS} 1 ${AVAILABLE_THREADS})
|
|
do
|
|
echo ${MODE} | tee /sys/devices/system/cpu/cpu${thread}/online >/dev/null 2>&1
|
|
done
|
|
}
|
|
|
|
set_cpu_gov() {
|
|
for POLICY in $(ls /sys/devices/system/cpu/cpufreq 2>/dev/null | grep policy[0-9])
|
|
do
|
|
if [ -e "/sys/devices/system/cpu/cpufreq/${POLICY}/scaling_governor" ]
|
|
then
|
|
echo $1 >/sys/devices/system/cpu/cpufreq/${POLICY}/scaling_governor 2>/dev/null
|
|
fi
|
|
done
|
|
}
|
|
|
|
set_dmc_gov() {
|
|
if [ -e "${DMC_FREQ}/governor" ]
|
|
then
|
|
echo $1 >${DMC_FREQ}/governor 2>/dev/null || echo dmc_$1 >${DMC_FREQ}/governor 2>/dev/null
|
|
fi
|
|
}
|
|
|
|
set_gpu_gov() {
|
|
if [ -e "${GPU_FREQ}/governor" ]
|
|
then
|
|
echo $1 >${GPU_FREQ}/governor 2>/dev/null || echo dmc_$1 >${GPU_FREQ}/governor 2>/dev/null
|
|
fi
|
|
}
|
|
|
|
set_amdgpu_perf() {
|
|
for AMDGPU_PERF_DEVICE in $(find /sys/devices -name power_dpm_force_performance_level 2>/dev/null)
|
|
do
|
|
echo $1 >${AMDGPU_PERF} 2>/dev/null
|
|
done
|
|
}
|
|
|
|
onlinethreads() {
|
|
set_online_threads ${1} ${2}
|
|
}
|
|
|
|
performance() {
|
|
set_cpu_gov performance
|
|
set_amdgpu_perf profile_peak
|
|
set_gpu_gov performance
|
|
set_dmc_gov performance
|
|
}
|
|
|
|
ondemand() {
|
|
set_cpu_gov ondemand
|
|
set_amdgpu_perf auto
|
|
set_gpu_gov simple_ondemand
|
|
set_dmc_gov ondemand
|
|
}
|
|
|
|
schedutil() {
|
|
set_cpu_gov schedutil
|
|
set_amdgpu_perf auto
|
|
set_gpu_gov simple_ondemand
|
|
set_dmc_gov ondemand
|
|
}
|
|
|
|
powersave() {
|
|
set_cpu_gov powersave
|
|
set_amdgpu_perf low
|
|
set_gpu_gov powersave
|
|
set_dmc_gov powersave
|
|
}
|