Add CPU power management tools and dynamic frequency scaling

- Add cpu-power-control.sh: Script for managing CPU power limits and presets
- Add monitor-cpu-freq.sh: Real-time CPU frequency monitoring tool
- Add test-single-core-boost.sh: Tool for testing single-core boost frequencies
- Add BIOS-FIX.md: Documentation for BIOS configuration fix
- Update tlp.conf: Configure dynamic CPU frequency scaling (400MHz-4.2GHz on AC, 400MHz-2.2GHz on battery)
- Add Intel RAPL power limit controls for CPU power capping
- Enable dynamic frequency scaling with proper platform profiles
- Fix CPU frequency stuck at 1.6GHz issue (required BIOS SpeedStep disable)
- Configure balanced battery mode with 2.2GHz max for responsiveness
This commit is contained in:
rwiegand
2025-10-06 22:34:19 +02:00
parent ba8f37706f
commit b9e2c2a731
5 changed files with 648 additions and 12 deletions

View File

@@ -31,6 +31,8 @@ MAX_LOST_WORK_SECS_ON_BAT=60
# Select a CPU frequency scaling governor.
# Intel Core i processor with intel_pstate driver:
# powersave(*), performance
# For dynamic scaling between min and max, use "powersave" (it still allows turbo boost!)
# "performance" keeps CPU at higher frequencies constantly
# Older hardware with acpi-cpufreq driver:
# ondemand(*), powersave, performance, conservative, schedutil
CPU_SCALING_GOVERNOR_ON_AC=powersave
@@ -39,29 +41,55 @@ CPU_SCALING_GOVERNOR_ON_BAT=powersave
# Set the min/max frequency available for the scaling governor.
# Possible values depend on your CPU. For available frequencies see
# the output of tlp-stat -p.
CPU_SCALING_MIN_FREQ_ON_AC=800000
CPU_SCALING_MAX_FREQ_ON_AC=2000000
CPU_SCALING_MIN_FREQ_ON_BAT=800000
CPU_SCALING_MAX_FREQ_ON_BAT=1600000
# AC: Full range (400 MHz - 4.2 GHz) for maximum efficiency and performance
# Battery: 400 MHz minimum for best power savings, 2.2 GHz max for responsiveness
CPU_SCALING_MIN_FREQ_ON_AC=400000
CPU_SCALING_MAX_FREQ_ON_AC=4200000
CPU_SCALING_MIN_FREQ_ON_BAT=400000
CPU_SCALING_MAX_FREQ_ON_BAT=2200000
# Set energy performance hints (HWP) for Intel P-state governor:
# performance, balance_performance, default, balance_power, power
# Values are given in order of increasing power saving.
# AC: balance_performance for dynamic scaling with good responsiveness
# Battery: balance_power for better battery life while still allowing boost to 2.2 GHz
CPU_HWP_ON_AC=balance_performance
CPU_HWP_ON_BAT=power
CPU_HWP_ON_BAT=balance_power
# Set Intel P-state performance: 0..100 (%)
# Limit the max/min P-state to control the power dissipation of the CPU.
# Values are stated as a percentage of the available performance.
# Set min to 0% for dynamic scaling (allows 800MHz idle)
# AC: 100% max to allow full 4.2GHz boost
# Battery: ~52% max to limit to 2.2GHz (52% of 4.2GHz = ~2.2GHz)
CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=100
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=50
CPU_MAX_PERF_ON_BAT=52
# ACPI Platform Profile (if available):
# low-power, balanced, performance
# This setting can override CPU frequency settings if not set correctly
# AC: performance for maximum responsiveness
# Battery: balanced for good battery life while allowing boost to 2.2 GHz
PLATFORM_PROFILE_ON_AC=performance
PLATFORM_PROFILE_ON_BAT=balanced
# Intel RAPL power limits (replaces the missing CPU power slider):
# Set CPU package power limits in watts (W)
# This provides the equivalent functionality of GUI power sliders
# Increased from 15W to 25W for better performance and higher boost frequencies
CPU_RAPL_POWER_LIMIT_LONG_ON_AC=25
CPU_RAPL_POWER_LIMIT_LONG_ON_BAT=8
CPU_RAPL_POWER_LIMIT_SHORT_ON_AC=35
CPU_RAPL_POWER_LIMIT_SHORT_ON_BAT=12
# Set the CPU "turbo boost" feature: 0=disable, 1=allow
# Requires an Intel Core i processor.
# AC: Enable turbo for full performance (up to 4.2 GHz)
# Battery: Enable turbo but limited by CPU_MAX_PERF to 2.2 GHz
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0
CPU_BOOST_ON_BAT=1
# Minimize number of used CPU cores/hyper-threads under light load conditions:
# 0=disable, 1=enable
@@ -78,11 +106,10 @@ NMI_WATCHDOG=0
# CAUTION: only use this, if you thoroughly understand what you are doing!
#PHC_CONTROLS="F:V F:V F:V F:V"
# Set CPU performance versus energy savings policy:
# performance, balance-performance, default, balance-power, power
# Values are given in order of increasing power saving.
CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
CPU_ENERGY_PERF_POLICY_ON_BAT=power
# CPU performance versus energy savings policy (deprecated for intel_pstate)
# Modern Intel CPUs use CPU_HWP settings above instead of CPU_ENERGY_PERF_POLICY
# CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
# CPU_ENERGY_PERF_POLICY_ON_BAT=power
# Disk devices; separate multiple devices with spaces (default: sda).
# Devices can be specified by disk ID also (lookup with: tlp diskid).