[Bug 367739] Re: cpufreq ondemand governor stuck at lowest frequency

Borja López Soilán (Pexego) borjals at pexego.es
Sun Mar 14 10:15:19 UTC 2010


Jeremy: The bug was still present on the new kernels last time I checked
it. Though it is easy to solve, if you know what are you looking for.

Last times I installed an Ubuntu or Mint machine (Core2Duos and Atoms),
I had to cope with it: The CPU will remain at the lowest frequency most
of the time. On the Atom it even causes stuttering on CPU-demanding
applications (like Flash, or Compiz efects).

I think that the root of the problem maybe the threshold that is used to increase the CPU speed: It's too hight!  
If I remember correctly it is 90%. The problem is, that with mostly-single-threaded apps, even if one thread is running at 100% is hard to achieve a 90% CPU usage on *both* cores (it just gets balanced, so you get something like 60% and 40% load on each core). 
That seems to be the problem: Most of the applications use the full juice of a single thread, but don't get to use neither core at 90% (on the hyper-threaded Atoms this seems to be true for almost every CPU load), and the CPU doesn't scale up on these cases. 

So the easy workaround is just to lower the threshold below 50%, so that
one thread running at 100% is enough to scale up the speed. This is
really noticeable on Atoms (600Mhz -> 1200Mhz, twice as fast when it
scales up!) and greatly reduces problems with Flash (let's say Youtube)
and makes Compiz smoother. The workaround just consists on 3 lines on
the "/etc/rc.local" file:

sleep 30 # Wait for the ondemand governor to be fully load
echo 25 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 25 > /sys/devices/system/cpu/cpu1/cpufreq/ondemand/up_threshold

Anyway, I think the problem should be solved either at Ubuntu: The default threshould should be configured to <50%. Even if this reduces a bit the battery life (as I say on Atoms it may be a night and day difference).
Or at the kernel (the cpu governor) level: The governor should take into account the load balancing the kernel seems to be doing between cores. Seems hard for a single threaded app to use the 90% of a single core.

-- 
cpufreq ondemand governor stuck at lowest frequency
https://bugs.launchpad.net/bugs/367739
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to linux in ubuntu.




More information about the kernel-bugs mailing list