| Home | PowerTOP | Download | Tips & Tricks | Success Stories | FAQ | Discuss |
Use a recent distributionLinux is a fast moving project, with very fast evolving components. If you're using an older distribution, older than 4 to 6 months (and anything with "Enterprise" in the name is by definition old), please consider going to a newer distribution. Reporting issues on older distributions is going to be frustrating to a lot of people, since the issue is likely to have been fixed more than 6 months ago... Please be considerate of the developers of projects and use a recent codebase and avoid bugging them about issues they solved long ago.Known issues, tips and tricksXorg | i915@pci | kernel | GAIM | Firefox | Evolution | dhcdbd | ntp | S06cpuspeed | ipw2100 | acpi (ibm_acpi) | mixer_applet2 | appletouch | ipw3945 | knotify | hdaps | gvim | gksu | timidity | mpd | xterm | tpb | forcedeth | sealert | usb | interrupt | kopeteXorg shows up high on the hall-of-shame listXorg generally does work on behalf of other programs, so if Xorg shows up high on the list, there are other programs that make it do work on your system. In our experiments with an "ultra idle" Linux graphical desktop, Xorg is indeed not showing any activity.Known candidates for things that keep Xorg having activity are gnome-power-manager and gaim, but sometimes it's as simple as having a blinking cursor in a terminal or an animation on a website that keeps Xorg busy. A good thing to try is killall gnome-power-managerto see if it is indeed gnome-power-manager that is constantly having Xorg do work. <interrupt> i915@pciThe Intel graphics driver used to have a bug where it set up the hardware to generate an interrupt (called VBLANK) each time the screen finished refreshing (typically at 60Hz or 72Hz). In normal 2D mode, this interrupt isn't actually used. PowerTOP unveiled this bug and the current Intel graphics driver no longer has this behavior.If you're in 3D mode (for example because you are using a 3D desktop), this interrupt is currently still needed for OpenGL compatibility. We're investigating ways to mitigate this, but this is going to be a fairly invasive fix. We'll update this webpage with more information once we have this solved. If you do not need 3D at all, you can disable DRI altogether, which will kill 3D, but also most i915-related interrupts. Simply add
Option "NoDRI"
to the "Device" section in /etc/X11/xorg.conf.
The Linux KernelThe Linux kernel has several known issues with too-frequent timers. We are maintaining a patch against the 2.6 kernel to fix or work around several of these issues.You can download the patch for the 2.6.21 kernel here; Josh Triplett has contributed a port of this patch to 2.6.22-rc1. A patch to force-enable HPETs can be downloaded here. A patch from Venki (ported to 2.6.22-rc6 by George Wu) to enable C3 on some laptops where Linux doesn't use C3 can be downloaded here. FirefoxWhile there are many things that can keep the Firefox browser active, such as animations in websites you are looking at, Firefox also had a few things that would keep Firefox active even when looking at a blank page. We've fixed two of the most visible bugs in this space, and are collecting more fixes over time.Mike Hommey has filed a cleaner fix for these in the Firefox bugzilla as bug 380558. You can download Mike's Firefox 2.0 patchkit here. GAIM / PidginThe Pidgin (GAIM) instant messaging client checks every 5 seconds if you have been idle more than 10 minutes, to mark you away in the IM networks you're connected to. In addition to this, it will also ask the X server every 5 seconds if the X server supports the X screensaver extension.... the X server either supports or doesn't support this, this isn't changing after starting the application.We've created a patch to GAIM to fix these 2 issues, and Georgy Berdyshev has ported this to the latest Pidgin release. You can download this patch here. The Pidgin developers have also worked with us and integrated this functionality in the now released version 2.0.1, if you're using this version you don't need a patch anymore.. way to go! EvolutionThe Evolution email client has a 10Hz timer to process one of it's internal event queues. Most of the time, there is nothing to do, the event queue is empty. We've created a patch for Evolution to only use the timer when there are actual events to be processed.You can download the patch for evolution 2.10 here. dhcdbddhcdbd is a program that connects the DHCP client of the OS to the DBUS gnome program. dhcdbd implements it's own defered event mechanism and uses high frequency polling to handle these events, rather than sleeping until the first planned event happens.Keith Packard has developed a patch to fix this issue; you can download this patch here. ntpBy default, the ntp time synchronization daemon will wake up once per second, and will make the kernel do work on it's behalf even more. Red Hat has created a patch to ntp to fix this issue and ships it in their rawhide and FC7 ntp packages. You can download this patch from the Fedora cvs server.S06cpuspeedThe kernels ondemand CPU frequency management function currently has a high-frequency timer that samples to see if the CPU is idle. Intel fixed this and the patches to the kernel to effectively remove this timer are included in Linus' tree as of 2.6.22-rc1.However, if you don't want to rebase to that kernel, you can also reduce the frequency of this timer from a command prompt with the following command: cd /sys/devices/system/cpu/cpu0/cpufreq cat ondemand/sampling_rate_max > ondemand/sampling_rate ipw2100Matthew Garrett has provided a patch to power down the ipw2100 wireless driver when the hardware isn't in use.ibm_acpiThe ibm_acpi kernel module seems to create a really high number/frequency of ACPI interrupts, which will shorten your battery life a lot. We've not diagnosed this a lot yet, but at this point it's worth trying to unload this kernel module from your kernel.mixer_applet2The gnome mixer applet (the volume settings icon on the top menu bar) used to poll at a very high frequency to see if the volume has changed (so that it would update it's icon). The good news is that ALSA has a nice notification API to notify applications on volume changes.
Patches to implement this are in the following 2 gnome bugzillas: appletouchMatthew Garrett has provided a patch to the apple macbook touchpad driver to stop it from doing hundreds of wakeups per second.ipw3945 and ipw2200 power save mode(this tip is contributed by Steinar H. Gunderson)There is currently no userspace support for enabling the power saving functionality of ipw3945. The driver doesn't support the standard "iwconfig ethX power" interface, but you can turn down the power usage with: iwpriv eth2 set_power 1which seems to save almost 100 mA in idle state over the default setting. The value has the following meaning Power save level: 5 (Timeout 25ms, Period 1000ms) Power save level: 1 (Timeout 350ms, Period 400ms)A setting of 5 will save you more power (at the expense of performance). In many networks, you'll see about 10 wakeups per second due to the wireless router's Beacon Internal of 100ms. Many AP's allow customization of that interval to 1000ms; this will bring the number of ipw interrupts down to 1/s. A beacon is a packet broadcast by the Router to synchronize the wireless network. We did not observe any performance degradation because of this change. knotifyThe KDE knotify application shows high levels of wakeups; Matthias Kretz has posted a detailed analysis on his blog. You can get a patch for this from there, or you can download a mirrored copy here.You can reduce/zero this by disabling arts in the Control Panel if no KDE sound is needed. hdapsMatthew Garrett also provides a patch to the kernel hdaps driver to not fire interrupts unless you're actively using the functionality.gvim(Suggestion contributed by Adrian Yee)The gvim program has a blinking cursor which wakes up things regularly. You can fix this by putting let &guicursor = &guicursor . ",a:blinkon0"into your .gvimrc file. gksuFrank Ursel has reported that the gksu program causes almost 1000 wakeups/second for him, which is costing him approximately half an hour of battery life. No fix is known yet.Initial investigation shows that gksu has a 100 microsecond polling loop in it's main program, and even though the kernel rounds this up to a 1 millisecond loop most of the time, this is obviously preventing the CPU from reaching power saving modes.. timidityMatheus Izvekov reports that the timidity MIDI sound player shows 100 wakeups per second when idle. We're investigating why this is now.mpdMatheus Izvekov reports that the mpd media player wakes up 100 times per second once the first song is played, even when no song is playing.Alexander Trueman has contacted us to mention that the he analyzed and fixed this behavior in the SVN version of mpd. He mentions that his fix will go into the next release. xtermxterms are waking up once per second when totally idle. It seems the periodic idle wakeups are due to xterm checking for session management events. Adding the +sm option, or setting the resource sessionMgt to false, stops the periodic tick.tpbtpb (Thinkpad laptop utility) is currently polling nvram for changes every 200 microseconds. The polling rate is configurable by setting POLLTIME in the /etc/tpbrc file but increasing it does lead to some events not getting caught anymore.Several Thinkpad models will also generate events for these keys so polling wouldn't be needed on these models. forcedethThere is an issue with the forcedeth driver in the kernel; there is an interrupt generated 100 times per second to work around a bug on certain hardware that forcedeth handles. Detailed description in a comment in drivers/net/forcedeth.c.sealertThe sealert daemon in Fedora 7 wakes up 10 times per second due to a bug in how the python code daemonizes itself. This issue is filed in the Red Hat bugzilla as bug 239893.usbThere is no C3 with attached usb devices.interruptacpi is taking 15-20 wakeups. Setting /proc/acpi/thermal_zone/THRM/polling_frequency to 0 instead of 2 solves this. Important: Keep temperature of thermal zone on watch!kopeteReduce wakeups with SmoothScrolling=false in [ContactList] section in the kopeterc file. |
© 2007 Intel Corporation | Intel is a registered trademark of Intel Corporation. | * Other names and brands may be claimed as the property of others.