As I understand it, a kernel ACPI facility called "PPC", related to how processors express their capabilities to the OS, is faulty, or the machine BIOS is faulty. Either way, this PPC facility is incorrectly warning the CPU Frequency scaling facility that the CPU is running too fast, which causes the scaling facility to slow down unnecessarily.
This requires a kernel or BIOS update to fix, but there is a decent workaround: Set the 'processor' module parameter called 'ignore_ppc' from the default '0' value to '1'. At runtime, you can set it via the R/W SysFS node '/sys/module/processor/parameters/ignore_ppc'. At boot time, use the option 'processor.ignore_ppc=1'--I added this to 'grub.conf'.
See http://kerneltrap.org/index.php?q=mailarchive/linux-kernel/2008/5/23/1922554/thread for more information.
I'm using the latest F10 updates on a Dell Inspiron 8600 notebook (Pentium M 1.4 GHz), and the CPU frequency scaling appears to be malfunctioning. I think this is a new issue, but it's hard to say--I only noticed it recently, but it's possible that I just wasn't paying attention.
Basically, the system won't let me set the CPU frequency to the maximum (1400 MHz), and it keeps fluctuating between 1000 and 1200 MHz as the load on the system changes. Also, the fluctuations are kind of random: Even if the load average is above 2.0 and rising, the frequency will stay at 1000 MHz as the box starts to choke up. The machine is basically unuseable under KDE4, right now--I'm struggle just to type this email.
I tried selecting the "performance" option from the system tray applet, which I've read is supposed to peg the CPU frequency at the highest level. No effect. I've also tried exiting from the applet, killing the HAL cpu daemon, and setting manual minimum/maximum values via Sysfs. This last trick rejected 1400 MHz as a valid setting, even though Sysfs reports it as one of the available frequencies, and in any event it wouldn't stick--the machine switched back to 1000 MHz after a few minutes.
I'm not running 'cpuspeed' or 'cpufreqd' or anything like that, as far as I know.
Is there something I'm missing, here?