Intel Has A Solution For Hot Linux Laptops Draining The Battery While Trying To Sleep
Hitting the S0ix suspend state when the laptop is hot where the PCH is "overheated" will cause it to fail to reach that lower power state. Merged back in 2020 was an attempted fix by adding a one second delay loop to allow the PCH temperature to ideally drop below the threshold limit so it can safely go into the S0ix state.
That delay timeout worked well enough with their initial testing to allow entering S0ix after heavy workload testing, but it turns out that for some laptop models that short sleep delay isn't enough to cool down the PCH enough for S0ix success. Sent out today is a new patch series aiming to provide a better solution for the S0ix failure caused by PCH overheating.
Your laptop needs to cool down too... This kernel patch series provides extra time to do so, avoiding S0ix possibly failing.
That original sleep delay loop was found to be inadequate depending upon the initial PCH temperature, the workload, and the ambient room temperature. In turn users find rather than enjoying S0ix power-savings they are in a shallower power state like PCx that end up draining the laptop battery without the user being aware of the situation.
From today's patch series... Bring your laptop to Florida, trigger a bug.
The proposed solution now is allowing up to a 60 second delay timeout for the PCH to cool down for allowing S0ix to happen. Additionally, it makes sure the PCH temperature is lower than the threshold where as previously would attempt if equal to the threshold.
With Intel's testing of this patch series they now report, "This patch series has been tested on the same Dell XPS 9360 laptop and S0ix is 100% achieved across 1000+ s2idle iterations." This PCH temperature threshold inhibiting S0ix usage is known to be in place for at least Skylake through Comet Lake laptops, according to the patch comments.