An update on the undervolting front. The PHC team has now used LaunchPad to provide a PPA (Personal Package Archive) that contains a standard Ubuntu desktop kernel recompiled so that the CPU frequency modules are run-time loadable and not built into the kernel. This meant that I could add their repository to my list of repositories, and then use a command line tool (apt-get) or GUI (synaptic) to automatically install that kernel. Sweet! I did so, and it installed properly, but the BIOS on my motherboard did not convince the PHC version of the acpi-cpufreq module that it was capable of supporting the calls to alter voltage assignments ("no such device"). Apparently this happens with some less-well-implemented BIOSes.
Fortune smiled, however. The old pathway (downloading the kernel source, modifying the deprecated but still active speedstep-centrino module, and recompiling & installing said module) worked just fine. The PHC PPA included a source repository, so the source I downloaded with apt-get was the source for the modified kernel I was running.
Now I'm back where I was before Ubuntu 9.04. Not the latest and greatest PHC mechanism, but undervolting nonetheless. I hope that my next system (five months away?) will be able to use the PHC acpi-cpufreq module. However, every choice affects everything else ... if I want to go with a 64-bit system, or a kernel with Physical Address Extension (PAE), in order to use more than ~3.2 GB of RAM, will the PHC team supply a corresponding kernel? Or will Ubuntu take the CPU modules out of the kernel for the 9.10 release? Stay tuned!
Showing posts with label PHC. Show all posts
Showing posts with label PHC. Show all posts
Thursday, September 17, 2009
Sunday, August 2, 2009
Ubuntu 9.04 upgrade and undervolting
Two and a half years ago, I assembled my current computer. From close to the beginning I used CPU undervolting (supplying the CPU with sufficient voltage, but less than the default for a given CPU speed) to reduce my maximum power draw. I knew ahead of time, from other forums, that the technique I had employed for software undervolting of the CPU would no longer work after upgrading to Ubuntu 9.04. The earlier versions of Linux PHC had hacked the speedstep_centrino module of the Linux kernel; this was now deprecated, and the logic had been moved to the acpi_cpufreq module. Further, the new release had all of the frequency regulating modules baked into the stock kernel, so you could not merely substitute a patched module, but would need another entire kernel. Linux PHC now provides such a kernel, tracking Ubuntu releases, but I haven't bothered to adopt that yet.
One effect of undervolting through software, rather than the PC BIOS, is that you can't go below the lowest legal voltage (applied when the CPU is idle), nor can you slow the CPU below the manufacturer's minimum speed (or faster than the maximum). The software can request an even lower voltage or speed, but the hardware ignores it. What this means is that the technique used above allowed me to reduce the power draw of my CPU when it was busy, but did not affect the idle state. When you're checking email and web browsing, your CPU spends a lot of time at that minimum state. When fully stressed calculating Mersenne primes, undervolting Vcore from 1.21 to 1.05 volts had saved about 13 watts (the whole box then drew about 77 watts). At idle, I was saving 0 watts out of 42.
So, the hassle factor is outweighing the being-green factor. Next year I plan to assemble a new system, and with care it should be faster, smaller, and draw less power (at least a bit) than the current box, even without undervolting. If undervolting becomes less trouble to maintain (Ubuntu releases a new kernel every couple of months), I'll certainly apply that technique too.
One effect of undervolting through software, rather than the PC BIOS, is that you can't go below the lowest legal voltage (applied when the CPU is idle), nor can you slow the CPU below the manufacturer's minimum speed (or faster than the maximum). The software can request an even lower voltage or speed, but the hardware ignores it. What this means is that the technique used above allowed me to reduce the power draw of my CPU when it was busy, but did not affect the idle state. When you're checking email and web browsing, your CPU spends a lot of time at that minimum state. When fully stressed calculating Mersenne primes, undervolting Vcore from 1.21 to 1.05 volts had saved about 13 watts (the whole box then drew about 77 watts). At idle, I was saving 0 watts out of 42.

So, the hassle factor is outweighing the being-green factor. Next year I plan to assemble a new system, and with care it should be faster, smaller, and draw less power (at least a bit) than the current box, even without undervolting. If undervolting becomes less trouble to maintain (Ubuntu releases a new kernel every couple of months), I'll certainly apply that technique too.
Subscribe to:
Posts (Atom)