[Bug 233764] [amdtemp] does not know correct offset for AMD Family 15h (A8-7600, FX-8300, etc) Tctl

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Dec 20 08:09:24 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233764

Alexey Dokuchaev <danfe at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |danfe at FreeBSD.org

--- Comment #23 from Alexey Dokuchaev <danfe at FreeBSD.org> ---
Unfortunately, our amdtemp(4) driver is doing the best it can according to the
spec.  Starting with the Phenoms, AMD's digital sensor no longer reports an
absolute temperature value anymore, but a reading with a certain offset, which
isn't really known; it might not even be constant per CPU type.

I believe that some proprietary tools employ certain tricks or use undocumented
pieces of knowledge to make up for this, but e.g. Open Hardware Monitor uses
the same formula as FreeBSD plus allows to specify configurable "offset" which
is zero by default: ((Tctl >> 21) & 0x7FF) / 8.0f.

That is, Tctl is a non-physical temperature on an arbitrary scale (confusingly)
measured in degrees Celsius with a resolution of 1/8th degree.  AMD designed
this equation to accurately read load temperatures (45°C+).  It has an
equational offset to determine them which equalizes at 45́°C.  Since it's
designed for peak values and is a non-physical temperature it cannot read idle
temperatures or account for ambient temperature correctly.

That's why popular tools like HWinfo64, MWmonitor, or Aida64 usually report two
values: one for the socket and another for the core temperature.  The socket
value is what you should look at if you want an idea of idle temperature and
the core one for the CPU temperature under load.

I understand that it's somewhat frustrating to see BIOS and AMD Overdrive
reporting seemingly sane temperatures across the entire spectrum, but it is
most likely a cumulative reading from a number of different sensors, most of
which are out of scope of amdtemp(4) or even undocumented at all.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list