Skip to content

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")
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information