Powermanagement improvements.

There’s quite some discussion about powermanagement here at the Ubuntu
Developers Summit in sunny Sevilla. There are quite some Intel people around
here, providing lots of insight in powermanagement on a hardware and driver
level. Here’s a couple of points that have come up.

  • First, the good news. KDE is in a pretty good shape when it comes to
    sleeping applications. Applications using timers can wake up
    the CPU from sleep states (or even prevent sleeping in the worst case). The CPU
    sleep states (usually named C-states) greatly reduce CPU power draining. The
    worst offenders are currently kopete (responsible for 40% of the wakeups on a
    Fedora test system) and HAL polling the CD-ROM drive every two seconds. Will
    Stephenson told me that kopete in KDE4 is fixed already, and that fixing the
    KDE3 version is on his radar. This makes KDE even more battery friendly.
    Generally, KDE’s technical design makes it rather easy to fix those issues
    system-wide. Kudos to the people working on this!
  • Tickless kernel. The new dynticks and hi-res timers make a
    *huge* difference. Ben Collins mentioned 30 – 40 minutes of extra battery life
    with dynticks and hi-res timers enabled. This stuff is new in 2.6.21, and
    already in the Gutsy kernel. dynticks also make it possible for the CPU to sleep
    much more. Another thing that’s important in that respect is HPET, basically
    doing something similar, but less effective. Every bit helps, however.
  • Intel has a nice tool to analyse userspace misbehaviour. It’s called
    ticktool and tells you which applications keep the CPU from
    sleeping. Having identified those, stracing the process in question can give you
    a better idea of what’s going on. Next step: Fixing it. Intel will release the
    tool on their website intellinuxpower.org (not up yet) shortly, rumours are
    “within a few days”.
  • Synchronising timer events can also help a lot. 5
    timers spread over the second force the cpu to wake up much more often than 5
    timers running all at once. Result: the CPU sleeps longer, you save battery
    life. There seems to be a patch doing this flying around in Oslo, although there
    are probably some things that need consideration before this can be widely
    deployed.
  • Intel will be working on a profile manager that should
    make it easy for userspace to specify power-profiles for various scenarios.
    Switching of devices and putting devices into a lower powerstate when they’re
    not used. Especially USB is a big offender, although recent kernels (2.6.21,
    especially) have mechanics to suspend those battery-drainers when they’re not
    uses). A proposal will pop up on relevant mailinglists within a couple of weeks.
  • Powermanager (the battery applet used in Kubuntu) will
    be ported to Qt4 for Gutsy. There’s very little KDE specific stuff in there, so
    it should be possible without losing lots of functionality. Kpowersave is deemed
    to complicated from a user’s point of view. Still, it would be interesting to
    know if kpowersave is being ported to KDE4, or if one should think about that
    functionality. powermanager is not distro-dependant, it does everything via HAL.
    I don’t think a python application is a viable option to have in KDE4 default
    and running since it adds about 8MB of extra memory in use and takes a bit long
    to start, especially with cold caches.
  • AMD/ATI’s fglrx driver is a total pain in the ass. In
    fact, it is the one component driver that is most complained about. ATI just
    doesn’t seem to care (“Increase your market share by a factor of 5 and we might
    fix the drivers”). I can only encourage people to actively avoid buying hardware
    containing ATI chips. Try to get an intel one. Given the bad quality of the
    fglrx driver and the lack of features, you’re Free Desktop will be able to take
    advantage of much more eye-candy and powermanagement features.
    ATI’s fglrx module is needed on my notebook, there’s a x1300 chip in
    there, which is currently not supported by a free driver. Finding a
    kernel-version / drvier-version combination that actually does suspend with this
    blob loaded took me a week and probably two dozen recompiles of various kernel
    versions. ATI’s engineers seem to actively ignore this issue. One of the latest
    releases contained a new user interface tool which makes it possible to change
    for example anti-aliasing setting for the video card. It doesn’t support things like
    texture_to_pixmap (useful for compositing features), proper suspend support
    (refuses to resume properly in >1 of 10 cases), you often have to wait for it to
    support recent kernels (happened with 2.6.20, took roughly 2 months while a patch was
    in the wild). AMD/ATI engineers seem to completely ignore the user’s
    needs. So by all means: Avoid buying ATI chips if you want your Free Operating
    system to run well.

So there’s a lot of exciting stuff going on in the powermanagement world.
Battery life and power consumption of your device will improve on the software
side.

Posted in KDE