Does the problem occur on battery or AC or both?
CPU can enter into C6 or lower on both battery and AC.
CPU can't enter past C5 on AC.
Steps to reproduce the problem
Look at powertop/turbostat output on AC.
Remove power plug.
Look at powertop/turbostat output on battery.
As part of enabling better support for suspend-to-idle one of the issues that we identified was that when using TLP the default configuration will override the kernel's ASPM policies (which for most distributions they follow the "default" ASPM policy (IE keep BIOS ASPM defaults).
TLP however configures on AC to change this.
# PCI Express Active State Power Management (PCIe ASPM):
# default, performance, powersave.
This leads to higher power consumption on AC, slower charging. On some CPU packages it can (perhaps counterintuitively?) lead to worse performance because the package will overheat sooner and need to throttle.
I'd like to propose that for your defaults you should set both of those to the word default and comment them out. If someone knows they want to change the performance or powersave specifically they can. This will allow the general purpose scenarios to work more correctly.
The text was updated successfully, but these errors were encountered:
Rationale: PCIE_ASPM_ON_AC=performance prevents the CPU to enter
past C5 on AC leading to higher power consumption on AC and slower
Solution: keep the kernel "default" ASPM policy i.e. stay with
BIOS ASPM defaults. CPU can enter into C6 or lower on AC now.
Disable the setting by default, let the user decide.
* Mario Limonciello
Besides, isn't it obvious that "performance" may lead to sleep disorders? ;-)
It was not obvious to me. But, still, if the 'sleep disorder' is no longer the default . . actually, no; I do think you'll have people turning on the performance mode and being suprised that what they regard as separate, basic functionality - sleep - doesn't work anymore. But, still, it's up to you, of course.
Sorry guys for not meeting your expectations, but the kernel interface – e.g. /sys/module/pcie_aspm/parameters/policy – offers no possibility of influencing the sleep states directly. Btw the same is true for all other power saving sysfiles. You have to deal with it.