Preventing rMBP Thermal Meltdown

2013-11-29

My Retina MacBook Pro (early 2013 model) has been too quiet lately.

I suspect that either the recent EFI or SMC updates modified the fan control curves, with the result that the fans stay at 2000 RPM independent of thermal load. Running multi-threaded code, such as par2tbb which takes all the cores that it gets, quickly overheats the processor to the point of emergency shutdown.

At first I thought that there might be a hardware problem with the fans, but successfully increasing the fan speed using smcFanControl proved otherwise. An SMC reset had no effect1, and the firmware installers refuse to re-run.

The solution comes in the form of the Fan Control preference pane and daemon, which lets me specify a linear curve between measured temperature and desired fan speed. Unfortunately, the SMC address polled for reading the temperature does no longer exist on the Retina MBP and thus the reported temperature is stuck at 0 degrees. Fortunately, Fan Control is free software and MacRumors forum members compiled binaries with modified sensor addresses.

I settled on the version which reads the TC0F address. I don’t know exactly which sensor this address corresponds to, but comparing with iStat Menus it is close to the “CPU Die - digital” sensor, although the change in reported temperature is substantially slower.

If I find the time I will compile Fan Control myself for further fine tuning, but I am glad that I can run heavy workloads again. My thanks go to Lobotomo Software and MacRumors forum members xqdong and maratus. No thanks to Apple for the botched update.


  1. At first I was unsure if the SMC reset even took place. Apparently the only feedback for a successful reset is the charging indicator switching from orange to green and back. So make sure that the battery is charging before pressing the magic key combination. ↩︎