I own a ASUS Z87 Pro and an Intel 4670K that I’ve overclocked to a respectable 4.4 GHz which had started exhibiting problems. I noticed a few weeks ago that the bus speed was fluctuating between 95-99 MHz by looking at it with CPU-Z.
I orginally believed that this was happening due to an imminant motherboard death. In attempts to debug the problem I had:
- Increased input voltage to 1.9v
- Decreased/increase uncore multiplier
- Changed CPU multipliers
- Increased/decreased voltage
- Force BCLK to 100 Mhz
- Disabled/enabled spread spectrum
- RMA’d my motherboard to ASUS
Oddly, the problem only exhibited itself when I was overclocked because the behavior disappeared when I reset to BIOS factory default settings. In truth, the issue was because I had Hyper-V installed on my Windows 8 machine!
I discovered this after I disabled Virtualization support in the BIOS and noticed that the fluctuations stopped. After that, I uninstalled Hyper-V, re-enabled Virtualization support, and everything has been fine since then. I’m now just going to use VirtualBox for my VM needs since it doesn’t cause the same problems.
It seems like a bunch of other people have noticed this:
- http://social.technet.microsoft.com/Forums/windows/en-US/6f383b2a-3a4a-472f-a966-cda0ce646e37/hyperv-windows-8-cpu-power-management-problem?forum=w8itprogeneral
- http://social.technet.microsoft.com/Forums/windowsserver/en-US/7d99ac94-3340-44c1-856e-fad4684aeea2/hyperv-and-processor-power-states-on-windows-server-2012-intel-speedstep?forum=winserverhyperv
- http://www.eightforums.com/virtualization/30128-performace-hit-hyper-v-installed.html
It looks like this is just a Hyper-V/hardware problem. It seems like Microsoft is doing some weird things with C and P-states to attain energy efficiency with SpeedStep:
- http://workinghardinit.wordpress.com/2011/06/20/consider-cpu-power-optimization-versus-performance-when-virtualizing/
- https://web.archive.org/web/20121117000348/http://www.nspyre.nl/blogs/3178/Windows8-Hyper-V-V3-SpeedStep
Oh, and I’ve now sent ASUS my debugging analysis so we’ll see what comes out of that.