1

I'm trying to enable the max cpu frequance for hyper-v guests. In the hyper-v physical host displays cpu at 4.4GHz which is boosted speed:

Hyper-v Host display as 4.4GHz

But the cpu speed is at default speed in the hyper-v guest which is 3.31 Ghz:

Hyper-v Guest display as 3.3Ghz

I've disabled C1,C6 states from bios, and enabled turbo boost, turbo boost max 3.0. I've also set "high performance" power cfg in both host and guest os. The cpu-z also displays same speed with task manager displays.

How can I use max cpu speed in the guest os?

Host: Hyper-V Server 2016

Guest: Windows Server 2016 Standard

Cpu: Intel I9 7900X

Motherboard: Asrock x299

Update

I've enabled all C states, and P State with "Native Mode" as SpeedShift like @ewwhite described solution. But this time cpu speed locked at 3.3GHz default speed. And cpu-z displayed 1.2Ghz: enter image description here

oruchreis
  • 179
  • 3
  • 12
  • If the host says the CPU is turbo boosted, then it is. The guest just may not know it. – psusi Nov 16 '17 at 23:04
  • @psusi I did cpu benchmark in host and guest but the guest stuck at default speed, not boosted speed. Also cpu-z in the guest displays 3.3Ghz while the cpu-z in the host displays boosted 4.4Ghz. – oruchreis Nov 17 '17 at 08:20
  • When you saw the turbo speed on the host, were you running a load test in the host, or the guest? – psusi Nov 20 '17 at 23:17
  • Cpu-z displays turbo speed all the time in the host when the C-states and speedstep are disabled. But cpu-z in the guest displays default speed, and it doesn't change on the load or idle. Also cpu-z measured the cpu score about 5000 in the guest while the host had 6600 score on the load test, I gave all cores to the guest. I don't expect that vm has same score with the host, but at least the vm must run at turbo speed. – oruchreis Nov 21 '17 at 07:14

2 Answers2

1

Disabling C-states hurts the ability to use TurboBoost.

But remember that TurboBoost is not active on all cores at once, and depends on what else is happening on the system. It's not a full-time speed increase; it's opportunistic.

To reach the maximum Turbo Boost frequency, you need to allow deep C-states (above C-state 1), and enable CPU core frequency scaling (P-states)

These days, I've just been setting my Linux systems and Hypervisors to OS Control mode in the server BIOS. That's all you should need.

ewwhite
  • 197,159
  • 92
  • 443
  • 809
  • I've enabled all C states, and P State with "Native Mode" as SpeedShift. But this time cpu speed locked at 3.3GHz default speed. And cpu-z displayed 1.2Ghz. – oruchreis Nov 17 '17 at 08:11
0

Enabling turbo boost does not mean your CPU will always work in Max Turbo Boost frequency. Based on your heavy work load it can reach up to max turbo frequency. look at the CPU utilization in the snapshot you provided its zero.

try running any bench marking tool like heavy load to see your CPU performance reaching maximum.

C states should be enabled as these are the Power saving features for CPU and it only activate based on the CPU work load.

Pr Mod
  • 23
  • 6