Atom D525 Inaccurate Temperature Readings



  • pfSense (latest embedded version) is displaying my CPU and motherboard temperatures ca. 18 degrees below what my BIOS and motherboard utilities display them as being.  I have searched the forums and found some old posts about this matter, but I had assumed the problem had been corrected in the current versions of pfSense.  I have already tried changing the one advanced, misc. setting in the console to "none" to no avail–doing so results in no temperature being displayed).  I don't know how long this situation has existed, as it seemed that the display was correct at one time.  Can anyone explain to me in detail how to correct this situation (i.e., "Temperature Error Compensation for Dummies")?


  • Netgate Administrator

    The actual value reported by the CPU is given as the temperature below the maximum junction temperature (Tj-max). The usual cause of offset readings is the Tj-max value is wrong. This is usually a BIOS issue. I think you can see the Tj-max value in the sysctls. You may be able to override it if it's not corect. No idea whay it mght have changed though. Are you using ACPI or Coretemp in your settings?

    Steve



  • Thanks, Stephen, for your help.  I am using "coretemp" as "ACPI/none" yields no results.


  • Netgate Administrator

    You should be able to check the Tjmax syscyl then.
    I doubt this patch made it into 8.3:
    http://lists.freebsd.org/pipermail/freebsd-bugs/2012-September/049951.html

    Steve



  • Thanks–not sure all of what I will need to do to apply the patch, but it will likely have to wait until I return from vacation in a few weeks as I am also migrating from a USB drive to a SATA DOM and the latter has not been shipped to me as yet.



  • If anyone would be so kind as to supply me with detailed instructions (i.e., "Applying the Temperature Patch for Dummies") on how to apply the patch that Stephen refers to in his link, I would greatly appreciate it.

    Thanks.


  • Netgate Administrator

    Have you tried a 2.2 snapshot? Those should have the patch included already. Easy way to test it anyway.

    Steve



  • What exactly do you mean by a "snapshot" and how do you obtain it (I am running the most recent version of the software)?  Oops!  Do you mean to say that version 2.2 will have the fix?–o.k., then I'll just wait until its official release.


  • Netgate Administrator

    Snapshots of the current build of 2.2 (which is still in alpha) are available here:
    http://snapshots.pfsense.org
    2.2 is built on FreeBSD 10-rel so should include this patch. It will allow you to test it before 2.2 is released to decide if you need to try some other solution.

    Steve



  • I am using the 2.2 snapshot on my home pfsense box and temps are working correctly on my atom d510.  The temps did not work correctly on 2.1.x  so it looks like the patch made it.



  • Stephen wrote:

    "Have you tried a 2.2 snapshot? Those should have the patch included already."

    I downloaded and installed v. 2.2 when it was released last week, but I don't see any difference in CPU temperature reporting.  Isn't the patch in the final version?


  • Netgate Administrator

    I don't see it in the source:
    https://svnweb.freebsd.org/base/release/10.1.0/sys/dev/coretemp/coretemp.c?revision=274417&view=markup

    :(

    What does your install report the tjmax as:

    [2.2-RELEASE][root@xtm5.localdomain]/root: sysctl -a | grep tjmax
    dev.cpu.0.coretemp.tjmax: 85.0C
    dev.cpu.1.coretemp.tjmax: 85.0C
    
    

    Steve



  • $ sysctl -a | grep tjmax
    dev.cpu.0.coretemp.tjmax: 100.0C
    dev.cpu.1.coretemp.tjmax: 100.0C
    dev.cpu.2.coretemp.tjmax: 100.0C
    dev.cpu.3.coretemp.tjmax: 100.0C


  • Netgate Administrator

    Do you see this in the boot logs:
    coretemp0: <cpu on-die="" thermal="" sensors="">on cpu0
    coretemp0: Can not get Tj(target) from your CPU, using 100C.

    The correct tjmax value for the D525 seems to be mostly reported as 100C with some reports of 125C.

    Steve</cpu>



  • If coretemp for some reason is reported wrongly you can adjust the readings. This is what I have in /boot/loader.conf.local:

    dev.amdtemp.0.sensor_offset=-6


  • Netgate Administrator

    Unfortunately a similar control doesn't exist in the coretemp driver.

    Steve



  • The only relevant thing I see in the boot log ("general" log tab):

    Jan 28 01:42:35 kernel: coretemp3: <cpu on-die="" thermal="" sensors="">on cpu3
    Jan 28 01:42:35 kernel: coretemp2: <cpu on-die="" thermal="" sensors="">on cpu2
    Jan 28 01:42:35 kernel: coretemp1: <cpu on-die="" thermal="" sensors="">on cpu1
    Jan 28 01:42:35 kernel: coretemp0: <cpu on-die="" thermal="" sensors="">on cpu0

    By the way, on a different subject, do I have to worry about this other message in the boot log(?):

    Jan 28 01:42:35 kernel: iwi_monitor: If you agree with the license, set legal.intel_iwi.license_ack=1 in /boot/loader.conf.
    Jan 28 01:42:35 kernel: iwi_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_iwi/.</cpu></cpu></cpu></cpu>


  • Netgate Administrator

    Hmm, looks like it's correctly finding and reading the tjmax value from the CPU then.  :-\

    Those license warnings are nothing to worry about. You can add the ack values to loader.conf.local to make them go away if you want.

    Steve