X
Tech

CPU Frequency Scaling

Reducing the CPU speed is an important part of power management in modern laptop computers. In fact, running the CPU at a lower speed not only saves power, it reduces the heat production, which reduces the need for the cooling fan to run, saving even more power, and making the laptop itself feel less "hot" or "warm" to the touch (or to your lap).
Written by J.A. Watson, Contributor

Reducing the CPU speed is an important part of power management in modern laptop computers. In fact, running the CPU at a lower speed not only saves power, it reduces the heat production, which reduces the need for the cooling fan to run, saving even more power, and making the laptop itself feel less "hot" or "warm" to the touch (or to your lap).

Since getting my HP 2133 Mini-Note, I had read a number of reviews which mentioned that it tended to run quite hot. I had noticed the same thing myself; in fact, the bottom of the Mini-Note sometimes got so hot that it was not comfortable to hold it on my lap, and I thought it was a good thing that mine came with the double-size battery pack, because that made it sit up off the desk a bit, so air could circulate beneath it and help cool it.

A few days ago, the light finally came on in my head... maybe the CPU frequency scaling wasn't working? It didn't take long to find out, just add the Gnome CPU Frequency Scaling Monitor to the panel, and sure enough it was running at 1.6 GHz constantly. Not good. Actually, I didn't even need to look at the monitor, because when I added it I got a warning message that basically said "your CPU doesn't have scaling enabled, what the heck do you want to run this for?".

The Ubuntu Community Wiki mentions that previous releases needed an additional parameter for the kernel boot command, so I thought the obvious thing to do was try that. Sure enough, it did the trick - as soon as I rebooted, the CPU monitor showed the frequency dropping from 1.6GHz to 800 MHz when the system was idle, the cooling fan didn't run nearly as much (mostly not at all), and the bottom of the Mini-Note was much less warm. Hooray!

Next step, explore all the other Linux distributions I have loaded on the 2133. Hmmm. Ubuntu is Debian-based, so why not start by going back there first. Boot Debian 5.0, check... no CPU scaling... add the paramter, reboot... presto! Works like a charm. Ok, SimplyMEPIS is also Debian-based... yup, same results. This one is a bit confusing, because there is a setting in the MEPIS System Assistant that says "Enable CPU Scaling on AC Power", but in fact it has no effect, the scaling doesn't work without this modification, and it always works after this modification, regardless of AC power connection or the setting of that flag. Just for good measure, and because I still have them loaded, check Ubuntu 8.10 and 8.04... both work with this fix, so those who choose to stay with older Ubuntu releases, for stability, will still be ok with this.

Ok, that's it for Debian distributions. How about openSuSE and SuSE Linux Enterprise 11? Both are not scaling initially, and both work just fine after adding the kernel parameter. Next up, Fedora 10... WOW! It is working properly, without the change! Hmmm... those guys at Red Hat are good! (It turns out that they do it differently, they are using a separate package called e_powersaver, which unlike the acpi package doesn't have a problem with VIA CPUs).

Finally, Mandriva, and PCLinuxOS which is derived from it. Uh-oh. It isn't working, and adding the kernel parameter doesn't help. I've spent quite a while digging in the Wikis and Forums for both of these, and still haven't managed to get it working. I'm still digging, though, so if I find a solution, I will share it here.

jw 3/4/2009

Editorial standards