Summary: I've noticed that with Windows 8.1 on my laptop, running a single CPU intensive program does not cause the CPU frequency to scale to its maximum value. I suspect that this is because of process migration occurring too quickly. I'm wondering if there is a solution to this problem or if anyone else has noticed it.
I was running something in VirtualBox and I noticed it was much slower than I expected (a CPU intensive workload that should not have much virtualization overhead). After investigating I noticed that the host CPU was running at 1.17 GHz instead of its max speed of 2.53 GHz. Some troubleshooting eventually led me to just run Prime95 torture test with a single thread on the Windows 8.1 host OS (so the rest of my question ignores virtualization). The result (shown below) was that a single Prime95 thread also left the frequency at 1.17 GHz
However, if I ran Prime95 with 4 threads then the system would be fully loaded and the frequency boosted up to over 2.5 GHz (it has turbo mode so the exact frequency fluctuated).
Furthermore if I set the CPU affinity for the Prime95 process to limit it to a single logical CPU then it also reached its max frequency (around 2.9GHz, higher turbo since the other cores were idle).
I also have Linux, and Windows 7, installed on other partitions on this laptop and I tested with those OSes as well. Neither of them had a problem with a single process boosting to its maximum frequency. So it seems the problem is something related to how Windows 8.1 interacts with my HP EliteBook 8440p laptop. The screenshots I showed here were when I tested with Prime95 because that is an application that I know simply stresses the CPU. But my larger concern is that I experienced the same problem with both VirtualBox and VMware Workstation 7.1. Any ideas for a possible solution are appreciated.