Runtime Power Management

From postmarketOS

Most postmarketOS devices running the mainline kernel lack runtime power management. Runtime power management allows battery savings when the device is in use.

Check if Runtime PM is enabled

  • Check if enabled: /sys/bus/*/devices/*/power/runtime_enabled
  • Check status: /sys/bus/*/devices/*/power/runtime_status


Tooling

  • Intel's Powertop
  • USB-C powermeter
  • /sysfs interface
  • Schematics

Unused devices

GPU, USB hubs, etc. are power hungry, make sure they are properly suspended. You might also want to make it suspend faster than the default.

Voltage

Reducing the voltage to the minimum also helps a lot to save power and reduce heat. Check all regulators and turn them towards the lower end of what is allowed.

You can check the power domains in /sys/kernel/debug and make sure they are really off when the device is unused.

Devfreq

  • CPU frequency scaling
  • DRAM frequency scaling

Troubleshooting

When you experience a lot of hangs make sure:

  • Regulators used by other components are not turned off until all the components using this regulator are suspended.
  • Check the ramp delays of regulators to make sure they have enough time to stabilize