CPU temperature reporting on AMD systems

Breit

Dabbler
Joined
Oct 4, 2016
Messages
25
I have an AMD system with an AMD Epyc 7302P (16C/32T over 4 CCDs; 4 cores per CCD) and I'd like to monitor CPU temperature using the graphite server reporting feature in TrueNAS 13.0 U4.

If I enable the graphite reporting feature, I get 32 temperature readings in database with names like:
servers.<server_name>.cputemp.<core#>.temperature, but they all report the exact same value.
If I check with sysctl, I get something like this:
Code:
dev.cpu.31.temperature: 51.7C
dev.cpu.30.temperature: 51.7C
dev.cpu.29.temperature: 51.7C
dev.cpu.28.temperature: 51.7C
dev.cpu.27.temperature: 51.7C
dev.cpu.26.temperature: 51.7C
dev.cpu.25.temperature: 51.7C
dev.cpu.24.temperature: 51.7C
dev.cpu.23.temperature: 51.7C
dev.cpu.22.temperature: 51.7C
dev.cpu.21.temperature: 51.7C
dev.cpu.20.temperature: 51.7C
dev.cpu.19.temperature: 51.7C
dev.cpu.18.temperature: 51.7C
dev.cpu.17.temperature: 51.7C
dev.cpu.16.temperature: 51.7C
dev.cpu.15.temperature: 51.7C
dev.cpu.14.temperature: 51.7C
dev.cpu.13.temperature: 51.7C
dev.cpu.12.temperature: 51.7C
dev.cpu.11.temperature: 51.7C
dev.cpu.10.temperature: 51.7C
dev.cpu.9.temperature: 51.7C
dev.cpu.8.temperature: 51.7C
dev.cpu.7.temperature: 51.7C
dev.cpu.6.temperature: 51.7C
dev.cpu.5.temperature: 51.7C
dev.cpu.4.temperature: 51.7C
dev.cpu.3.temperature: 51.7C
dev.cpu.2.temperature: 51.7C
dev.cpu.1.temperature: 51.7C
dev.cpu.0.temperature: 51.7C

So it seems those values come from there. Is there any way to read the temperatures from the individual cores?

For instance, sysctl has some entries from amdtemp as well. Something likle this:
Code:
dev.amdtemp.3.ccd6: 51.5C
dev.amdtemp.3.ccd4: 49.6C
dev.amdtemp.3.ccd2: 54.6C
dev.amdtemp.3.ccd0: 47.5C
dev.amdtemp.3.core0.sensor0: 51.7C
dev.amdtemp.3.sensor_offset: 0
dev.amdtemp.3.%parent: hostb32
dev.amdtemp.3.%pnpinfo:
dev.amdtemp.3.%location:
dev.amdtemp.3.%driver: amdtemp
dev.amdtemp.3.%desc: AMD CPU On-Die Thermal Sensors
dev.amdtemp.2.ccd6: 51.5C
dev.amdtemp.2.ccd4: 49.6C
dev.amdtemp.2.ccd2: 54.6C
dev.amdtemp.2.ccd0: 47.5C
dev.amdtemp.2.core0.sensor0: 51.7C
dev.amdtemp.2.sensor_offset: 0
dev.amdtemp.2.%parent: hostb16
dev.amdtemp.2.%pnpinfo:
dev.amdtemp.2.%location:
dev.amdtemp.2.%driver: amdtemp
dev.amdtemp.2.%desc: AMD CPU On-Die Thermal Sensors
dev.amdtemp.1.ccd6: 51.5C
dev.amdtemp.1.ccd4: 49.6C
dev.amdtemp.1.ccd2: 54.6C
dev.amdtemp.1.ccd0: 47.5C
dev.amdtemp.1.core0.sensor0: 51.7C
dev.amdtemp.1.sensor_offset: 0
dev.amdtemp.1.%parent: hostb8
dev.amdtemp.1.%pnpinfo:
dev.amdtemp.1.%location:
dev.amdtemp.1.%driver: amdtemp
dev.amdtemp.1.%desc: AMD CPU On-Die Thermal Sensors
dev.amdtemp.0.ccd6: 51.5C
dev.amdtemp.0.ccd4: 49.6C
dev.amdtemp.0.ccd2: 53.5C
dev.amdtemp.0.ccd0: 47.5C
dev.amdtemp.0.core0.sensor0: 51.7C
dev.amdtemp.0.sensor_offset: 0
dev.amdtemp.0.%parent: hostb0
dev.amdtemp.0.%pnpinfo:
dev.amdtemp.0.%location:
dev.amdtemp.0.%driver: amdtemp
dev.amdtemp.0.%desc: AMD CPU On-Die Thermal Sensors
dev.amdtemp.%parent:

At least there are individual readings from the individual CCDs, but I have no clue why this is repeated 4 times?!
Anyway, those amdtemp readings do not show up in the graphite server. Is there any way to get those amdtemp values to the graphite server without scripting this myself?

The dashboard isn't working correctly either. All CPU threads have the same temperature:
1681664278495.png
 
Last edited:
Top