Ubuntu – CPU frequency scaling issue – scaling_max_freq wrong

cpufreqfrequencyscaling

I have the an issue on my Elitebook Core 2 Duo T9600, the scaling stops to work after few seconds of high load and get stuck at 800Mhz.

Temperature is around 50-60°C for both cores, bios_limit is reporting the correct max speed 2534000 (2.53Ghz). The only wrong information I can find is in */sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq* which shows 1520400 rather than 2534000 but anyway, the CPU never goes beyond 800Mhz.
It appears either on AC and on battery.

My system: Ubuntu Raring 13.04 Kernel 3.8.0-19-generic x86-64

Is there a way to disable completely the scaling. I don't have any cpu freq manager running in userland.

Best Answer

OK, after few days of work, I think I can say this issue is solved ->
Use governor conservative and reset the scaling_max_freq as follow (if it changed):

(to do for each core)

echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  
echo 2530000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

The issue comes from the governor ondemand. After few seconds in high loads, it, somehow, reset the value of scaling_max_freq to 1520400 which become read-only or at least, can't be modified under "ondemand" governance and the CPU get stuck at the lowest frequency. I can reproduce the behavior.

Unfortunately, cpufreq-utils can't help (eg:/etc/init.d/cpufrequtils) and I can't set these values at boot time (eg: /etc/rc.local 0555'd), I have to apply it through a script with a cron job.

Where should I inform of this bug?