power-management-in-Ubuntu

Differences between revisions 14 and 15
Revision 14 as of 2007-07-27 14:04:26
Size: 4960
Editor: s5592b629
Comment:
Revision 15 as of 2007-10-06 18:54:37
Size: 5153
Editor: 84-104-169-248
Comment:
Deletions are marked like this. Additions are marked like this.
Line 60: Line 60:
 * UbuntuDemon : IMHO the tips&tricks suggested by http://www.lesswatts.org/tips/ and http://www.linuxpowertop.org/known.php and by running powertop need to be evaluated if this isn't done yet.

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

The Ubuntu Mobile Distribution will run on battery-powered devices. This makes power management critical. This specification lists the things that need to be addressed.

Rationale

Currently, Ubuntu is popular on laptops. With the increasing interest in mobile computing with the advent of Nokia´s internet tablets, Microsoft-Intel UMPCs and Intel´s MID initiative, battery life is becoming increasingly important. To be successful on these mobile platforms, significant work needs to be addressed toward increasing battery life. This work spans the whole stack from kernel to user-space.

Use Cases

  • Jane wants to be able to watch a couple of DVD movies on a cross-Atlantic flight
  • Robert wants to be able to attend one full day of a conference taking notes on his laptop without having to carry a power supply and searching for power sockets.

Scope

Gutsy

  • Enable a tickless (dynamic tick) kernel to allow processor to stay sleep for longer periods
  • Profile userspace with powertop from Intel (www.linuxpowertop.org) that lists offending processes that poll or set frequent timers and get them fixed

  • Includes patches from powertop website that fix application issues
  • Fix packages in the default install which can cause excessive battery usage: accessing the harddrive, polling for WLAN AP, keeps HW awake, etc.

Gutsy + 1

  • Use cpuidle infrastructure to idle processors

  • Develop a library that allows timer wake ups to be synchronized for non-real time apps. Get KDE and Gnome communities to use these libraries
  • Fix drivers to automatically put hardware to increasing levels of power save states based on multiple timeouts
  • Fix bus drivers to automatically put buses into power save modes when no devices on the bus are active e.g. pci, usb, pcmcia
  • Improve Linux driver model to allow control power control of individual devices to allow userspace to override the default policy of the driver
  • Profile userspace for unexpected block I/O accesses while idling. Those wakes the block devices and ATA buses from power saving modes, but PowerTOP don't tracks I/O. Tools : sysctl vm.block_dump=1 (then dmesg will show every block access), blktrace, systemtap.

Design

Implementation

Outstanding Issues

  • laptop-mode
  • take care of these patches by Intel too!!! [http://www.linuxpowertop.org/known.php #patches-by-intel] <- yes, all of those should be checked that we either ship recent enough upstream version or add a patch

  • other relevant patches to look at is Gleixner and Molnar hrtimers (esp. the "force enable HPET" set) [http://www.tglx.de/projects/hrtimers/ #here]

  • evaluate the best frequency scaling method (which userspace governor is best presently, is the recently reworked in kernel cpuidle/ondemand better than an userland daemon, ...)
  • detect and disable hardware when not needed (ie. NetworkManager could be made to kill wireless radio when running on ethernet, we may disable Wake-on-Lan by default, ensure xorg 7.3 detects and disable TV-out or CRT outputs when no external monitor is plugged, etc.)

  • ensure other (non-CPU) hardware power saving modes are really activated when on battery (like AC97's /sys/module/snd_ac97_codec/parameters/power_save, hard drives APM and spindown timeouts, fglrx, ...)

References and See also

BoF agenda and discussion

Comments


CategorySpec CategoryLaptop

power-management-in-Ubuntu (last edited 2008-08-06 16:22:27 by localhost)