From 776cdf6e92c1fcd1839bee8a1bdfeed711aaa8d2 Mon Sep 17 00:00:00 2001 From: Thomas Gebert Date: Wed, 24 Sep 2025 15:28:30 +0200 Subject: [PATCH] Add MAX CSTATE --- cpupower/cpupower | 1 + cpupower/cpupower.sh | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cpupower/cpupower b/cpupower/cpupower index d17ec34..2b99100 100644 --- a/cpupower/cpupower +++ b/cpupower/cpupower @@ -1,2 +1,3 @@ CPU_GOVERNOR="performance" +CPU_CSTATE_MAX="C1" CPU_CSTATES_DISABLE_BY_LATENCY="3" diff --git a/cpupower/cpupower.sh b/cpupower/cpupower.sh index 4323c8a..7fac44b 100644 --- a/cpupower/cpupower.sh +++ b/cpupower/cpupower.sh @@ -26,8 +26,21 @@ else echo "CPU governor is not set." fi +# Set the Cstate by Max C-State +if [ ! "${CPU_CSTATE_MAX}" == "" ]; then + print_header "Setting CPU CStates to max \"${CPU_CSTATE_MAX}\"" + CPU_POWER_SET_ACTION="-e" + CPU_POWER_CSTATE=0 + for CPU_CSTATE_NAME in /sys/devices/system/cpu/cpu0/cpuidle/state*/name; do + cpupower idle-set "${CPU_POWER_SET_ACTION}" "${CPU_POWER_CSTATE}" &> /dev/null + CPU_POWER_CSTATE=$((CPU_POWER_CSTATE+1)) + if grep -q "\b${CPU_CSTATE_MAX}\b" "${CPU_CSTATE_NAME}"; then + CPU_POWER_SET_ACTION="-d" + fi + done + cpupower idle-info # Set the Cstate by latency -if [ ! "${CPU_CSTATES_DISABLE_BY_LATENCY}" == "" ]; then +elif [ ! "${CPU_CSTATES_DISABLE_BY_LATENCY}" == "" ]; then print_header "Setting CPU CStates by latency to ${CPU_CSTATES_DISABLE_BY_LATENCY}" cpupower idle-set --disable-by-latency "${CPU_CSTATES_DISABLE_BY_LATENCY}" &> /dev/null cpupower idle-info