With the introduction of the tickless kernel and PowerTop it has become possible to save significant amounts of power by reducing the number of times per second that the CPU has to do work. This in turn allows the CPU to sleep for longer periods of time and spend more time in deeper C-states.
However, most people do not know about powertop and, frankly, should not have to tweak their own system's power usage. Linux should save power by default, whenever it is possible to do so.
The concept of this project is simple:
- Install a recent kernel on your system.
- Run powertop.
- Reduce the number of wakeups coming from the kernel.
Saving 3 Watts of power on millions of computers can make quite a difference.
- Enable power saving in device drivers by default. When power saving was introduced, it was often done as an optional module parameter to a device driver. Today it still is, even though it could probably be enabled by default now.
- Make wakeups in the kernel all happen simultaneously, by rounding longer sleeps up to the next whole second. This is done with the round_jiffies() macro.
Areas to work on
- Sound drivers. Can power saving be enabled by default?
- Wireless drivers.
- USB and SATA controllers.
- Look at timers in the kernel. Which ones can rounded up to the next whole second with round_jiffies?