IMac – CPU throttled to 0.8GHz due to “GPU LIMIT PROCHOT”

cpuimacperformancetemperature

Suddenly my iMac (late 2013) started to throttle CPU to 0.80GHz, everything becomes super sluggish. It happens ~5-10 min after a fresh reboot, sometimes it goes back to full speed for short periods, but most of the time stays throttled.
I tried to reset SMC, it doesn't seem to help. Also did clean install of Sierra, also did not help…

powermetrics reports that throttling occurs due to "GPU LIMIT PROCHOT", even though temperature is normal on all sensors I could take a peek on.

$ sudo thermal levels
cpu: 180
gpu: 30
io: 30



$ sudo powermetrics
...
**** Processor usage ****

Intel energy model derived package power (CPUs+GT+SA): 2.48W

LLC flushed residency: 65.9%

System Average frequency as fraction of nominal: 27.52% (798.17 Mhz)
Package 0 C-state residency: 67.72% (C2: 9.36% C3: 2.08% C6: 56.28% C7: 0.00% )


Performance Limited Due to:
GPU LIMIT PROCHOT

Core 0 C-state residency: 83.91% (C3: 0.00% C6: 0.00% C7: 83.91% )

CPU 0 duty cycles/s: active/idle [< 16 us: 92.56/27.35] [< 32 us: 14.86/12.29] [< 64 us: 19.82/76.90] [< 128 us: 32.70/49.35] [< 256 us: 49.15/26.76] [< 512 us: 32.90/34.68] [< 1024 us: 27.15/21.80] [< 2048 us: 5.95/33.30] [< 4096 us: 0.40/36.47] [< 8192 us: 0.20/14.67] [< 16384 us: 55.49/0.00] [< 32768 us: 2.18/0.00]
CPU Average frequency as fraction of nominal: 27.52% (798.17 Mhz)


Core 1 C-state residency: 84.27% (C3: 0.00% C6: 0.00% C7: 84.27% )


CPU 1 duty cycles/s: active/idle [< 16 us: 125.26/30.32] [< 32 us: 6.94/8.92] [< 64 us: 16.05/82.65] [< 128 us: 45.19/44.79] [< 256 us: 30.52/32.31] [< 512 us: 34.29/40.83] [< 1024 us: 21.60/22.99] [< 2048 us: 10.11/30.13] [< 4096 us: 5.75/38.05] [< 8192 us: 9.32/22.99] [< 16384 us: 47.96/0.20] [< 32768 us: 1.39/0.00]
CPU Average frequency as fraction of nominal: 27.52% (798.18 Mhz)


Core 2 C-state residency: 82.53% (C3: 0.02% C6: 0.00% C7: 82.50% )


CPU 2 duty cycles/s: active/idle [< 16 us: 130.81/31.91] [< 32 us: 8.32/3.37] [< 64 us: 19.82/104.84] [< 128 us: 41.42/44.00] [< 256 us: 38.65/33.30] [< 512 us: 34.09/46.38] [< 1024 us: 27.95/20.02] [< 2048 us: 13.48/28.94] [< 4096 us: 6.94/41.03] [< 8192 us: 10.11/24.77] [< 16384 us: 46.38/0.20] [< 32768 us: 0.79/0.00]
CPU Average frequency as fraction of nominal: 27.52% (798.17 Mhz)


Core 3 C-state residency: 86.15% (C3: 0.00% C6: 0.00% C7: 86.15% )


CPU 3 duty cycles/s: active/idle [< 16 us: 105.64/27.95] [< 32 us: 5.95/0.99] [< 64 us: 13.28/80.07] [< 128 us: 39.04/35.48] [< 256 us: 29.93/25.57] [< 512 us: 32.31/36.07] [< 1024 us: 20.41/22.40] [< 2048 us: 4.76/26.95] [< 4096 us: 2.38/34.29] [< 8192 us: 2.58/22.59] [< 16384 us: 54.90/0.00] [< 32768 us: 0.79/0.00]
CPU Average frequency as fraction of nominal: 27.52% (798.17 Mhz)

**** SMC sensors ****
CPU Thermal level: 180
GPU Thermal level: 30
IO Thermal level: 30
Fan: 2471 rpm
CPU die temperature: 38.38 C
GPU die temperature: 41.00 C

I checked all sensors and there is not a single one reporting temperature higher than 42C. What are those thermal levels based on?

Desperately seeking for any pointers… Thanks in advance!

Best Answer

I'm posting this three years late, but I still wanted to offer my experience, perhaps to people still scratching their heads because of this issue.

What I've experienced is not entirely identical to the OP's case, namely the machine of concern is a MacBook instead of an iMac. However, the symptoms were highly similar: the system was not under much load, sensors read normal temperatures, yet the CPU throttles down to 0.8 GHz, slowing everything to a crawl. Resetting SMC and NVRAM does nothing, hardware test reveals nothing. I searched all over the internet for possible reasons but I wasn't able solve the problem.

The solution, at least for my case, was ridiculously simple. One day I decided to pop the back cover of my MacBook Pro open, and after a solid round of dust cleaning, the issue magically disappeared. So perhaps, try doing a routine cleaning, it might help. I'm not guaranteeing anything, but I do hope this might save a small portion of people some time.