The Problem
My new Surface Pro 7 suddenly became slow today. After some research, I found that the issue was BD PROCHOT being enabled.
BD PROCHOT stands for "Bidirectional processor hot" and is used to throttle the clock speed of the CPU so that it doesn't overheat and kill itself(lol).
I found that the issue occurred(for me) when the charger was unplugged. This would make the CPU go from normal clock speeds (around 3Ghz) to 0.19Ghz, once here the clock speed would not fluctuate at all. (reinserting charger would not fix the issue)
My first attempt at fixing the issue was to hold down the power button for 20 seconds to make the Surface force restart but I found that this would only temporarily fix the issue by starting up at normal clock speeds than throttling down again to 0.19Ghz. This behavior also occurred when I tried to normally restart or shutdown and power on the Surface.
Conditions during throttling:
My Surface was around 40 °C-50 °C (So BO PROCHOT was definitely not supposed to run)
[If your actual temps are high do not attempt to fix using these methods as it may cause damage]
CPU usage: 13%-23%
GPU usage: 0%-5%
RAM usage: 40%-60%
My Surface
Surface Pro 7 Model 1866 i5
i5 10th Gen, 8 GB RAM, 128GB Storage
Up to date Windows 10
Windows 10 Home ver 1909
Possible Fixes
After googling I found 3 possible solutions:
[Disclaimer: Attempt these at YOUR own risk]
Solution 1: Open Regedit and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\intelppm and set the value to
2 ( 2=load on bootup, 3=load on demand, 4=disable) [I recommend not using 4. 3 is default]
Solution 2: Rename intelppm.sys C:\Windows\System32\drivers\intelppm.sys
Solution 3: Install ThrottleStop and disable BD PROCHOT with it.
(Restart your Surface after applying a solution)
The majority of the solutions here was from a thread back in 2015:
https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/windows-10-only-use-half-of-max-cpu-speed/d97b219f-10ee-4a42-a0fc-d517c1b60be8?page=7
RANT to Microsoft
Turns out this issue was found in the Surface Pro 6 and since then Mircosoft has rolled out a firmware update to fix it. So why is the issue STILL present in the Surface Pro 7?! Shouldn't the fix be applied to it too?
Mircosoft should really get this fixed and give us a firmware update. My past week of owning a Surface Pro 7 has been lukewarm due to this (even though I love my new Surface). Just scrolling through the r/Surface Reddit you can
find complaints about the performance of the Surface Pro 7(which I suspect was mainly the same issue here).