PowerMac G5 quad-core, CPU A1 DIODE TEMP: 90.8 C (for example): How to handle? [more data]

Nathan Whitehorn nwhitehorn at freebsd.org
Thu Jan 15 23:02:50 UTC 2015


The thermal control loop in the kernel is *extremely* simple-minded, 
just doing a linear ramp-up of fans to match some sort of average 
temperature in the thermal zone. I'm sure it just isn't sufficient for 
these machines.

Some sort of better algorithm would probably get more enthusiastic with 
fans when things get toward limits. You can see the algorithm in 
pmac_therm_manage_fans() in powermac_thermal.c. For testing purposes, 
you can also manipulate the fans from userland by sysctl if you disable 
kernel fan control (sysctl machdep.manage_fans). Note that this *also* 
disables thermal shutdowns, so be very careful not to set the machine on 
fire.
-Nathan

On 01/15/15 14:57, Justin Hibbits wrote:
> Hi Mark,
>
> All I can offer to this is a "Me Too".  With OS X, running 32 python
> 'while True: pass' instances, core temperature never once got above
> 75C, but with FreeBSD, ports building repeatedly caused shutdowns.
> It's possible, I guess, that we are misreading the sensors, but I'm
> not certain at all.
>
> This happens with both of my quads.  I thought maybe the LCS just
> needs recharged, but seeing your message, it might be a FreeBSD issue.
>
> Nathan, can you comment on this?
>
> - Justin
>
> On Thu, Jan 15, 2015 at 2:33 PM, Mark Millard <markmi at dsl-only.net> wrote:
>> For a well-operating PowerMac G5 quad-core for recording over 30 minutes, sampling about once a second, starting idle and doing "make -j 8 buildworld buildkernel":
>>
>> Low value to high value (for type of value to get idea of range expected)...
>>
>> dev.smusat.0.cpu_a0_diode_temp: 38.8C to dev.smusat.1.cpu_b1_diode_temp: 68.7C
>>
>> dev.smu.0.fans.cpu_a_intake.rpm: 484 to dev.smu.0.fans.cpu_a_intake.rpm: 1549
>>
>> dev.smu.0.fans.cpu_a_pump.rpm: 1235 to dev.smu.0.fans.cpu_a_pump.rpm: 2214
>>
>>
>> I put the problem PowerMac G5 quad-core in a about 56degF room in order to try to have it run longer so I could collect more information. This seems to have been enough to keep it somewhat below 90degC generally for the CPU diodes over the initial 30 minutes of "make -j 8 buildworld buildkernel".
>>
>> Low value to high value (for type of value to get idea of range happening, limited to the first 30 minutes or so)...
>>
>> dev.smusat.0.cpu_a0_diode_temp: 38.2C to dev.smusat.0.cpu_a1_diode_temp: 90.2C
>> (Just one 90.2C at that point and one dev.smusat.0.cpu_a1_diode_temp: 90.1C but a bunch of 89.[5-9]C's.)
>>
>> dev.smu.0.fans.cpu_a_intake.rpm: 485 to dev.smu.0.fans.cpu_a_intake.rpm: 3184
>>
>> dev.smu.0.fans.cpu_a_pump.rpm: 1254 to dev.smu.0.fans.cpu_a_pump.rpm: 3636
>>
>> Letting it run longer, however, has lead to more 90.[0-9]C's and messages like (all but the 1st two are from after the 30 minutes):
>>
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.2 C) exceeds critical temperature (90.0 C); count=1
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=1
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=1
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.2 C) exceeds critical temperature (90.0 C); count=2
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.4 C) exceeds critical temperature (90.0 C); count=3
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.6 C) exceeds critical temperature (90.0 C); count=4
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.4 C) exceeds critical temperature (90.0 C); count=1
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.4 C) exceeds critical temperature (90.0 C); count=2
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=3
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=2
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=3
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=1
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.1 C) exceeds critical temperature (90.0 C); count=1
>> WARNING: Current temperature (CPU A1 DIODE TEMP: 90.6 C) exceeds critical temperature (90.0 C); count=2
>>
>> It did automatically shut down after about 50 min. The other 3 CPU diodes were in the range 68C to 74C or so. A1 just seems to register hotter. It ended with the recorded sequence for a1:
>>
>> dev.smusat.0.cpu_a1_diode_temp: 89.2C
>> dev.smusat.0.cpu_a1_diode_temp: 90.6C
>> dev.smusat.0.cpu_a1_diode_temp: 90.6C
>> dev.smusat.0.cpu_a1_diode_temp: 90.1C
>> dev.smusat.0.cpu_a1_diode_temp: 89.9C
>> dev.smusat.0.cpu_a1_diode_temp: 90.1C
>> dev.smusat.0.cpu_a1_diode_temp: 90.9C
>> dev.smusat.0.cpu_a1_diode_temp: 91.3C
>> dev.smusat.0.cpu_a1_diode_temp: 91.1C
>> dev.smusat.0.cpu_a1_diode_temp: 91.4C
>> dev.smusat.0.cpu_a1_diode_temp: 91.8C
>> dev.smusat.0.cpu_a1_diode_temp: 92.0C
>>
>>
>> The high fan/pump figures recorded were:
>>
>> dev.smu.0.fans.cpu_b_intake.rpm: 3199
>> dev.smu.0.fans.cpu_a_intake.rpm: 3200
>> dev.smu.0.fans.cpu_b_exhaust.rpm: 3198
>> dev.smu.0.fans.cpu_a_exhaust.rpm: 3199
>> dev.smu.0.fans.cpu_a_pump.rpm: 3637
>>
>> These are all well above those recorded for the well-operating PowerMac G5 quad-core.
>>
>> ===
>> Mark Millard
>> markmi at dsl-only.net
>>
>>
>> _______________________________________________
>> freebsd-ppc at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-ppc
>> To unsubscribe, send any mail to "freebsd-ppc-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-ppc at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ppc
> To unsubscribe, send any mail to "freebsd-ppc-unsubscribe at freebsd.org"
>



More information about the freebsd-ppc mailing list