If everything appears normal and it's not overheating, how else can the problem be determined?
Usually 800mhz 'throttling' is usually caused by faulty sensors that 'tricked' the system into thinking that it is overheating when it's actually not. Apps like iStat Menus or TG Pro has a way to read sensor data of the SMC and then display it in the app. This way we can detect if any sensor is reporting weird values (say air intake 'A' sensor reporting 105C when its ususally 30C) or when it's reporting proper values, but just actually overheating.
Some components could be overheating without apparent symtoms as they don't get as hot as say, a CPU.
GPUs and VRMs fits this bill.
On systems with discrete GPUs (espc AMD ones such as 2015 15" Macbook Pro) the macos scheduler WILL throttle the CPU if it thinks the GPU die temperature approaches 65C and if the fan is not spinning at its 'desired' speed. (Keep in mind that AMD GPUs tend to either 'crash' or die when the GPU die goes above 70c) (This is more pronounced when you are running bootcamp. I ran into the hard limit of 75c, going above it risks BSOD. macOS gpu driver would also start to risk causing kernel panic once it goes above this temp as well)
But then again. This is just one data point, and thus might not be accurate.
So if a user uses fan control utility to limit the fan speed on their mac, and the dGPU temp spikes, the macOS will order the CPU to throttle to prevent GPU overheat. (As they share the same heatpipe by design) (I learned this first hand trying to silence my Macbook Pro from heating up with external monitor connected. Forced the fan to go slower, it throttles the CPU!)
There are also reports of system throttling due to overheated VRMs as well. (Though those had more to do with thermal throttling. which usually the CPU won't throttle this badly, only go down to 1.8-ish Ghz)
Another culprit could be Defective/Hardware problem. there had been reports of SMC sensors signal being 'interfered' by a bent trace near the iSight connector on some macbook pro models (again, A1398 models). That would 'trick' the SMC into beliving that one of the GPU die temp is too high, and that puts the system into 800mhz as well. Utilities such as iStat Pro and TG Pro can see this happening (it would show as one data point being way higher than usual temp (Or even better yet HWSensor AKA HWMonitor for mac, as it can tell you when the SMC receives the overheat signal)
Also, pmset -g thermlog would also say what level of throttling the scheduler is employing, and might be useful as to what triggers the throttle.
I hope that answer your question
