The PowerSave governor on Ubuntu 22.04 with kernel 5.15 often fails to throttle the CPU on ThinkPad P1 models because modern Intel processors require specific hardware support flags that may be disabled by default in BIOS or missing from the kernel configuration. To resolve high CPU activity and poor battery life, you must verify that the
intel_pstate driver is active, check BIOS settings for power management features, and manually switch governors using
cpupower or
tuned.
Verifying Hardware Support and Kernel Drivers
The primary reason for CPU frequency scaling failures on newer ThinkPads is the absence of proper hardware P-states support. The Linux kernel uses different drivers depending on the CPU architecture. For Intel processors, the preferred driver is
intel_pstate, which operates in "active" mode by default. If this driver is not loaded, the system falls back to the generic
acpi-cpufreq driver, which may not interact correctly with the ThinkPad's power management firmware.
You can check which driver is currently handling your CPU frequency scaling by running the following command in the terminal:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
If the output is
intel_pstate, your hardware support is present. If it returns
acpi-cpufreq, you need to enable
intel_pstate at boot time. This is done by adding a parameter to your GRUB configuration. Edit the file
/etc/default/grub and locate the line starting with
GRUB_CMDLINE_LINUX_DEFAULT. Append
intel_pstate=enable to the existing string inside the quotes. After saving the file, update GRUB by running:
sudo update-grub
Reboot your system and verify the driver again. This step alone resolves the issue for many users who find their CPUs stuck at maximum frequency regardless of load.
Checking BIOS Settings for Power Management
ThinkPad laptops have specific BIOS configurations that dictate how the operating system interacts with power hardware. Even if the Linux kernel is configured correctly, the BIOS might be preventing dynamic frequency scaling. On the ThinkPad P1, you should enter the BIOS setup by pressing F1 during startup. Navigate to the Config menu and select Power. Look for options related to "Intel SpeedStep" or "Turbo Boost." Ensure that these features are enabled. Disabling Turbo Boost can reduce performance but will significantly lower temperatures and improve battery life. Additionally, check if there is an option for "Power Save Mode" or "Battery Charge Threshold" and configure it according to your needs. Some users report that enabling "EC Battery Conservation Mode" helps stabilize power states, although this primarily affects charging rather than frequency scaling.
Manually Setting the CPU Governor
Once the correct driver is active, you can explicitly set the CPU governor to ensure it behaves as expected. The
power-save governor is designed to keep frequencies low when idle and boost them only when necessary. You can install the
cpupower utility if it is not already present:
sudo apt install linux-tools-common linux-tools-generic
Then, set the governor for all CPU cores using:
sudo cpupower frequency-set -g powersave
To make this change persistent across reboots, you can create a systemd service or use the
systemd-tmpfiles mechanism. However, a more robust approach on Ubuntu is to use the
tuned profile manager. Install
tuned and enable the
powersave profile:
sudo systemctl enable tuned
sudo systemctl start tuned
sudo tuned-adm profile powersave
This ensures that the system applies consistent power policies based on whether it is plugged into AC power or running on battery.
Troubleshooting Persistent High Frequency
If the CPU still runs at high frequencies despite these changes, check for background processes that might be forcing the CPU awake. Tools like
top or
htop can help identify runaway processes. Additionally, verify that thermal throttling is not interfering. Sometimes, aggressive cooling strategies can cause the CPU to oscillate between frequencies. You can monitor real-time frequency changes with:
watch -n 1 cat /proc/cpuinfo | grep "MHz"
Look for stability in the reported MHz values. If they fluctuate wildly, consider updating your BIOS to the latest version provided by Lenovo, as firmware updates often contain fixes for power management logic.
Frequently Asked Questions
How do I know if my ThinkPad P1 supports turbo boost?
Most modern Intel CPUs in the P1 series support Turbo Boost by default. You can confirm this by checking the CPU model name in
/proc/cpuinfo or using the
lscpu command, which lists available flags including
tm_turbo.
Can I disable turbo boost permanently to save battery?
Yes, you can disable Turbo Boost via BIOS settings or by using kernel parameters like
intel_pstate=no_turbo. However, this reduces maximum performance significantly and may impact application responsiveness.
Why does the governor revert after reboot?
Governor settings are volatile unless managed by a service like
tuned or a custom systemd unit. Without persistence mechanisms, the default governor defined in GRUB or the kernel module defaults will take over upon boot.
What is the difference between powersave and conservative governors?
The
powersave governor attempts to keep the CPU at the lowest possible frequency at all times, while the
conservative governor scales up and down gradually based on load, offering a balance between performance and power efficiency.
Should I update my kernel to fix this issue?
While newer kernels often include better hardware support, the issue on ThinkPad P1s with kernel 5.15 is typically resolved by enabling
intel_pstate and adjusting BIOS settings rather than upgrading the kernel itself.