Why isn't my CPU scaling to maximum boost on battery any more?

It used to, then all of a sudden yesterday I noticed it doesn’t go above 3100 on battery. If it’s on charger, then it goes to 3500 as it should. It used to go to 3500 on battery as well, then something changed (I don’t know what) and now it’s like purposefully limiting speed on battery.
Where should I look?

System is:

tlp & tlpui are installed.

Hey, welcome aboard! :partying_face:

So, have you enabled this in tlpui?

  1. Processor
  2. :white_check_mark: CPU_BOOST_ON_BAT = Enable

By default it’s disabled in tlp


Thanks for the quick reply! Yes, below are my TLP settings:

— TLP 1.4.0 --------------------------------------------

+++ Configured Settings:
defaults.conf L0004: TLP_ENABLE=“1”
defaults.conf L0005: TLP_WARN_LEVEL=“3”
defaults.conf L0006: TLP_PERSISTENT_DEFAULT=“0”
defaults.conf L0007: DISK_IDLE_SECS_ON_AC=“0”
defaults.conf L0008: DISK_IDLE_SECS_ON_BAT=“2”
defaults.conf L0009: MAX_LOST_WORK_SECS_ON_AC=“15”
/etc/tlp.conf L0070: MAX_LOST_WORK_SECS_ON_BAT=“15”
defaults.conf L0011: CPU_ENERGY_PERF_POLICY_ON_AC=“balance_performance”
defaults.conf L0012: CPU_ENERGY_PERF_POLICY_ON_BAT=“balance_power”
defaults.conf L0013: SCHED_POWERSAVE_ON_AC=“0”
defaults.conf L0014: SCHED_POWERSAVE_ON_BAT=“1”
defaults.conf L0015: NMI_WATCHDOG=“0”
defaults.conf L0016: DISK_DEVICES=“nvme0n1 sda”
defaults.conf L0017: DISK_APM_LEVEL_ON_AC=“254 254”
defaults.conf L0018: DISK_APM_LEVEL_ON_BAT=“128 128”
defaults.conf L0019: DISK_APM_CLASS_DENYLIST=“usb ieee1394”
defaults.conf L0020: DISK_IOSCHED=“keep keep”
defaults.conf L0021: SATA_LINKPWR_ON_AC=“med_power_with_dipm max_performance”
defaults.conf L0022: SATA_LINKPWR_ON_BAT=“med_power_with_dipm min_power”
/etc/tlp.conf L0254: AHCI_RUNTIME_PM_ON_AC=“auto”
defaults.conf L0024: AHCI_RUNTIME_PM_ON_BAT=“auto”
defaults.conf L0025: AHCI_RUNTIME_PM_TIMEOUT=“15”
defaults.conf L0026: PCIE_ASPM_ON_AC=“default”
defaults.conf L0027: PCIE_ASPM_ON_BAT=“default”
defaults.conf L0028: RADEON_DPM_PERF_LEVEL_ON_AC=“auto”
defaults.conf L0029: RADEON_DPM_PERF_LEVEL_ON_BAT=“auto”
defaults.conf L0030: RADEON_POWER_PROFILE_ON_AC=“default”
defaults.conf L0031: RADEON_POWER_PROFILE_ON_BAT=“default”
/etc/tlp.conf L0315: WIFI_PWR_ON_AC=“on”
defaults.conf L0033: WIFI_PWR_ON_BAT=“on”
defaults.conf L0034: WOL_DISABLE=“Y”
defaults.conf L0035: SOUND_POWER_SAVE_ON_AC=“1”
defaults.conf L0036: SOUND_POWER_SAVE_ON_BAT=“1”
defaults.conf L0037: SOUND_POWER_SAVE_CONTROLLER=“Y”
defaults.conf L0038: BAY_POWEROFF_ON_AC=“0”
defaults.conf L0039: BAY_POWEROFF_ON_BAT=“0”
defaults.conf L0040: BAY_DEVICE=“sr0”
/etc/tlp.conf L0349: RUNTIME_PM_ON_AC=“auto”
defaults.conf L0042: RUNTIME_PM_ON_BAT=“auto”
defaults.conf L0043: RUNTIME_PM_DRIVER_DENYLIST=“mei_me nouveau radeon”
defaults.conf L0044: USB_AUTOSUSPEND=“1”
defaults.conf L0045: USB_EXCLUDE_AUDIO=“1”
defaults.conf L0046: USB_EXCLUDE_BTUSB=“0”
defaults.conf L0047: USB_EXCLUDE_PHONE=“0”
defaults.conf L0048: USB_EXCLUDE_PRINTER=“1”
defaults.conf L0049: USB_EXCLUDE_WWAN=“0”
defaults.conf L0051: RESTORE_DEVICE_STATE_ON_STARTUP=“0”
defaults.conf L0052: RESTORE_THRESHOLDS_ON_BAT=“0”
defaults.conf L0053: NATACPI_ENABLE=“1”
defaults.conf L0054: TPACPI_ENABLE=“1”
defaults.conf L0055: TPSMAPI_ENABLE=“1”
/etc/tlp.conf L0136: CPU_BOOST_ON_AC=“1”
/etc/tlp.conf L0137: CPU_BOOST_ON_BAT=“1”
/etc/tlp.conf L0145: CPU_HWP_DYN_BOOST_ON_AC=“1”
/etc/tlp.conf L0146: CPU_HWP_DYN_BOOST_ON_BAT=“1”

There are settings in BIOS for platform characteristics on AC & Battery, which are set to Performance respectively Low power, but even changing battery mode to Performance doesn’t seem to make a difference other than changing how fans ramp up.

Meaningful changes between the time it behaved “normally” and now are a kernel update, and I installed acpi_call kernel module as it was reported missing by tlp. Might that be it?
I’m on the brink of uninstalling acpi_call, as running # dmesg shows these lines:
[1.045368] acpi_call: loading out-of-tree module taints kernel.
[1.045396] acpi_call: module verification failed: signature and/or required key missing - tainting kernel
I don’t know what that means exactly, but tainted seems worse than not tainted lol.

Here’s what sudo dmesg | grep failed shows:

[mrt@ndvrx270 ~]$ sudo dmesg | grep failed
[sudo] password for mrt:
[1.045396] acpi_call: module verification failed: signature and/or required key missing - tainting kernel
[2.293606] thermal thermal_zone3: failed to read out thermal zone (-61)
[10.497290] audit: type=1103 audit(1634256926.612:72): pid=798 uid=0 auid=4294967295 ses=4294967295 msg=‘op=PAM:setcred grantors=? acct=“mrt” exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed’
[943.018904] audit: type=1103 audit(1634257858.848:105): pid=2389 uid=0 auid=4294967295 ses=4294967295 msg=‘op=PAM:setcred grantors=? acct=“sddm” exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed’
[mrt@ndvrx270 ~]$

PID 798 being systemd, PID 2389 returns nothing when querying $ or # lsof -p 2389

Should I remove the acpi_call module? What’s it for, is it relevant to my system? That kernel message is bugging me. On another forum they say tpacpi_bat & acpi_call are superseded by natacpi, which I have. But why does tlp requires it, what does it do exactly? Before it was installed, running sudo tlp-stat -b reported the batteries OK but asked to install acpi_call module.

Well you can safely uninstall it and test again, i’m not sure it will help - but it won’t hurt (i’d do reboot after uninstallall).

And tainted kernel is not perfect, but not something to be scared of

That i don’t know, maybe someone else do…@dalto ? :upside_down_face:

1 Like

Yeah doesn’t seem to make a difference, but I’m observing more weird behavior and I think it has to do more with the bios, motherboard, cpu itself with active p states, etc than the software.
For example I noticed that while running stress -c 4 -i 2 the CPU would keep 3500 for a while on AC, then drop to 3000 and stay there.
If I unplug it, it jumps from 3000 to 3070-3100 on battery. Plug it in again, 3000. So it goes faster on battery than AC sometimes.
If I stop the stress test, let it breathe for a minute and test again, same behavior. 3500 initially, then drops and refuses to climb again. I think it’s temperature related.
Also, I’ve seen 3200-3300 on battery so it’s not locked at 3100 as initially thought. If I start the stress test on battery, it starts from 3300 then drops quickly because the fans are veeeery slow to pick up. It reaches a balance at 3050-3100 and remains there.

The system moves fine though and sips power. It goes for 15 hours plus on battery with mild usage. If I were conditioned to work continuously until the battery gave up, I’d curse it lol.

1 Like