My air conditioner died a few days ago and while it is a bit uncomfortable (I’m in Thailand and it is the hot season, so it gets up to around 34c in the office), it is insufferable to work when a 90 thread kernel process has 90% of the processor. It is really hard to troubleshoot a 90 thread kernel process when it is reporting as a single thread (and can't be killed, or the system dies).
Apparently, OSX detects a need to cool the system, the result being some brain-dead engineer devised it so a hot system uses more processor (likely the opposite intended). For the full story, see this and this. The thinking is that as a system heats up, certain parts of a process are spun out into a single kernel task in a bid to cool things down. However, of course that kernel task, since it has a whole bunch of little idiotic things to do, grabs priority and sacks the processor, running the fan batshit crazy, and slowing the heaping mess to a crawl. Thanks Apple for taking three hours of my life suffering through this, and finally getting a fix.
Turn off race conditions in OSX
First, get the model of the device with:
system_profiler -detailLevel mini | grep "Model Identifier:"
Next, go into the kext files:
cd /System/Library/Extensions/IOPlatformPluginFamily.kext/ cd Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/ cd Contents/Resources/
Then move the plist for the particular model, e.g.,
su mv MacBookAir4_2.plist /Users/jeff/
I should add this to a collection of stupid Apple tricks in the future (that is, the next one I encounter).
El Capitan fix
There is another thing for the El Capitan release.
The useful app smcFanControl can help set minimum rpm for the fan, as well as display rpm and temperature.