wmb at laptop.org
Tue Nov 3 13:09:03 EST 2009
Emiliano Pastorino wrote:
> There is a way to check the temperature under Linux. It involves
> the "lmsensors" package, but I don't know the exact details.
> Yes, that's what I've been using. The package is lm_sensors, if
> installed, you just have to type "sensors" and you get the temperature
> in ºC.
> I've already checked that temperature never goes beyond 100ºC, so it
> is working.
> But how does it work? Is it just underclocking?
The CPU changes the clock ratio dynamically when the temperature gets
> I've checked /proc/cpuinfo, but clock is always at ~1GHz
I don't know the details of how /proc/cpuinfo gets the clock
information. You can see the clock transitions in Open Firmware as follows:
ok 198 .msr show-temperature (cr many
In the unthrottled case, the MSR value will be 04060a06.04000a06. In
the throttled case it will be 04060a06.040c0406.
The fields in that value are AABBCCDD.EEFFGGHH, where
AA is the lowest supported clock ratio
BB is the lowest supported voltage
CC is the highest supported clock ratio
DD is the highest supported voltage
EE is the lowest configured clock ratio
FF contains status bits
GG is the current clock ratio
HH is the current voltage
All of the voltage fields are 06, which means that the voltage doesn't
change. The minimum clock ratio is 04, meaning 400 MHz, the maximum is
0a (decimal 10) meaning 1 GHz. The GG field is normally 0a - full speed
- but changes to 04 briefly when the processor throttles back to drop
the temperature from 100 to 95. The FF status field changes from 00 to
0c when throttling is in process. It is possible that /proc/cpuinfo is
reporting the correct information, but the throttling happens too
briefly to notice the change.
The CPU runs at full speed until the temperature reaches 100, then it
drops back to 400 MHz, but very quickly resumes full speed operation
when the temperature drops to 95.
More information about the Devel