[lm-sensors] IT8728 shows wrong CPU temperature

Jean Delvare khali at linux-fr.org
Fri Mar 23 14:34:10 CET 2012

On Fri, 23 Mar 2012 10:38:57 +0100, Tomas Johansson wrote:
> > Date: Fri, 23 Mar 2012 10:05:42 +0100
> > From: khali at linux-fr.org
> > On Fri, 23 Mar 2012 10:00:09 +0100, Tomas Johansson wrote:
> > > Because, these are idle values:
> > > 
> > > BIOS:
> > > SYS 34 C
> > > CPU 32 C
> > 
> > Most likely the above are NOT idle values. The BIOS is not idle - at
> > least never as idle as Linux can be with CPU frequency and voltage
> > scaling and low C states.
> > 
> > > lm-sensors:
> > > temp1:        +34.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor
> > > temp2:        +31.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor
> > > temp3:        +25.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor
> > > 
> > > 
> > > And when i for example compile firefox temp3 will rise to around 45-50 C, while temp2 stays at 31 C.
> > 
> > This is correct reasoning though. temp3 is CPU temp. But you're
> > comparing Linux idle with BIOS not idle, no surprise the values don't
> > match.
> Calm down. :)
> You seem a litte bit hostile Jean, i am sorry if i do not live up to your standards.

Am I? This is curious, as I am generally regarded as a reasonable,
friendly and polite person.

> However, i do not agree with you, no, BIOS is not IDLE but it is not FULL LOAD either.

How do you know? Did you disassemble the BIOS code? Do you know what
exactly it is doing when waiting for you to press a key?

You said that temp3 could climb to 45 or even 50°C under heavy load.
With 25°C being the idle temperature, it doesn't seem unreasonable for
the BIOS to be putting a medium load on the CPU leading to a
temperature of 32°C.

> I have never seen a so big difference between BIOS and Linux idle, usually they are 1-2 degrees.

I have seen this in the past, many, many times. I'm in this
"business" (and I'm using quotes because it's mostly done on my spare
time) for 8 years so I have some experience about it all.

Let's just take the machine I'm working on right now as an example.
It's a Celeron 2.4 GHz on an Asus P4P800-VM board, using a Winbond
W83627THF for monitoring. The BIOS displays a CPU temperature of
39.5°C. Linux displays a CPU temperature of 32.5°C. This is a 6°C
difference, close to what you're seeing on your system.

This machine happens to be plugged on a powermeter, so I can see that
it consumes 84 W in the BIOS, and only 62 W under Linux. So the
temperature difference is easily explained. As a matter of fact, if I
put some load on the CPU (md5sum -b /dev/zero) the temperature climbs
to 40°C, so roughly the same as what the BIOS prints.

I am not claiming that there is no bug in our IT8728F support. Without
a datasheet, odds are there are bugs. I am not even claiming that no
adjustments must be made for "sensors" to report the right CPU
temperature on your specific system. I am claiming that you did not
provide factual data that would make me regard this possibility as

If you want to make sure, then get your hands on a powermeter, or
external thermometer, or ideally both. Then compare their measurements
under the BIOS and under Linux. If these measurements are the same and
the CPU temperature values reported by the BIOS and "sensors" differ
significantly, then OK, I'll admit some more investigation, and possible
a fix, are needed.

Jean Delvare

More information about the lm-sensors mailing list