X1E: suspend power consumption is too high
I know that this is a very longstanding issue, but I feel like it is useful to have a central place to collect information.
Device: Lenovo Yoga Slim 7x
I measured the power consumption during suspend over ~2h (echo mem > /sys/power/state, see script below), it's around 2.9W.
I also measured suspend power consumption on Windows over ~1h (Lenovo Vantage displays the battery charge in Wh with 2 decimals), it's around 0.6W.
Expected result: Linux power consumption is around the same as Windows.
Script to measure suspend power consumption
#!/usr/bin/env python3
import time
import subprocess
import os
def read_bat_prop(prop):
with open(os.path.join("/sys/class/power_supply/qcom-battmgr-bat", prop), "r") as f:
return float(f.read().strip())
start_time = time.time()
start_energy = read_bat_prop("energy_now")
print(f"start_time: {int(start_time)}")
print(f"start_energy: {start_energy} uWh")
subprocess.run(["sudo", "tee", "/sys/power/state"], input=b"mem\n")
end_time = time.time()
end_energy = read_bat_prop("energy_now")
print(f"end_energy: {end_energy} uWh")
print(f"end_time: {int(end_time)}")
energy_empty = read_bat_prop("energy_empty")
energy_full = read_bat_prop("energy_full")
delta_energy = start_energy - end_energy
delta_time_h = (end_time - start_time) / 3600
power_W = delta_energy / delta_time_h / 1e6
delta_percent_per_h = (delta_energy / (energy_full - energy_empty)) / delta_time_h
print(f"power: {power_W:.6f} W")
print(f"power: {delta_percent_per_h:.2%} / h")