The online racing simulator
Idle throttling with Hyper-V
(9 posts, started )
Idle throttling with Hyper-V
Hi all,

I've just built a new system to be used as HTPC and NAS. As host I run Windows 8.1 which runs like a dream. When it's idle it clocks down to 0,8GHz for lower power usage. For the NAS I want to run XPEnology in a Virtual Machine. Since it's a Windows 8.1 system I thought I'd use Hyper-V since it's pretty much built-in the OS.

However, with Hyper-V enabled the CPU no longer clocks down to 0,8GHz. Even with no VM's configured it idles at 3,2GHz. This is oviously a waste of power.

I was wondering if anyone over here has an idea how to tackle this. I don't mind using VMware or something else if that's working fine with support for throttling. This VM will run all the time together with the HTPC and it will not be put under a lot of load, so it's important for me that the CPU will throttle down when its idle.

All I need is a VM that has the option to access a physical HDD (instead of a virtual HDD file) that still allows the CPU to be clocked down at idle to lower the power usage.
There seems to be a 'bug' in Windows 8 and Hyper-V which disables the CPU power management.

"I can confirm this is happening with Windows 8 Enterprise RTM with the Hyper-V role installed.
Dell E6430 BIOS A03 (current as of September 6th, 2012)
Intel 3rd Gen Core i5-3210M
SpeedStep Enabled in BIOS
CPU power state and throttle down working fine as verified with Task Manager without the Hyper-V role installed. Intel Turbo Boost also functioning fine without Hyper-V role installed.
With the Hyper-V role installed the CPU speed as reported in Task Manager stays at the Maximum speed regardless. Intel Turbo Boost not functioning either as reported by Task Manager.
As noted earlier, the bug could be with Hyper-V or maybe Task Manager itself. Just here to confirm the behavior."
http://www.networksteve.com/wi ... TopicId=60125&Posts=0

This seems not to happen with other OS's so maybe try 7 ?
It seems that Server 2008 doesn't have this issue.

Have fun with google on this one, may well be a limitation that MS has decided not to fix if this is still going on. Perhaps Win 8, in "microsoft think" shouldn't run Hyper-V.
Thanks, but I'm afraid that's not a real solution for me. I did find this though: http://www.hanselman.com/blog/ ... SpeedWhenUsingHyperV.aspx this link basically tells that the clockrate actually is lower, but that the task manager is just wrong.


I should test that out myself and also try out the power usage with a meter.


Does anyone know if VMWare ESXi has this as well?
I'd seen that reported too that it 'may' be task manager that's wrong. I still feel it's probably an issue with 8 based on my other readings but let us know if it's a reporting issue or a win 8 issue. It also seems to disable speedstep on intel i* processors as well.
Remember that 8 is very 'user' based rather than business based, it may well be that 'touchy feely' isn't designed to do real work on.

I use 7 and server for lifting work so can't test this myself. Win 8 is very much clients home pc material for me, it's not going near any business site for as long as possible.
I wouldn't go back yo Windows 7 again after using Windows 8. I've migrated all PC's at work recently to Windows 8 as well and everyone seems to like it.


Anyway, I also found this: http://www.nspyre.nl/blogs/317 ... ows8-Hyper-V-V3-SpeedStep


That also implies that the clockspeed on task manager is wrong. When I get home from work tonight I'll test this with CPU-Z. I should also maybe measure the idle power usage. Does anyone have a good and cheap device to measure this? Mine died a while back.
Digging into the knowledge base links quoted there it looks like " This issue occurs because of an error in the firmware implementation of the ACPI C-states (processor idle states). This firmware incorrectly maps the "core C3" processor state into the ACPI C2 state. Therefore, when the system enters C2, the platform goes to C3. This behavior causes the local APIC timer (LAPIC timer) of the processor to stop counting and to stop delivering interrupts. However, the Hyper-V hypervisor uses the LAPIC timer as the hypervisor’s internal time source. This behavior causes the problem that is described in the “Symptoms” section."
http://support.microsoft.com/kb/2000977

TL;DR, if CPUz gives a different reading and it works, that's great. If the VM's work ok and you don't get progressive slow downs then, without knowing your hardware, it should be fine.

Glad you like 8.0, it's good on some levels but I still think it's another ME/Vista personally. Although the 'I'm not a service pack, just a 3.62 gig update' 8.1 has fixed a number of my issues, (When it works !, had 2 Pc's it had major issues with) as well as speeding the thing up a lot.
Mind you, a single release would be great rather than the current wastful update system though the (cr)app store

Edit; just checking emails and wham, what do you know !, you may find this interesting. "Windows 8.1 is designed to work within what Microsoft calls a "generation 2 virtual machine," a new type of VM available exclusively under Hyper-V. This VM essentially strips away all pretense of virtualizing legacy PC deployments. Generation 2 VMs are UEFI-based, rather than relying on a BIOS, and there are no emulated devices. These VMs boot directly off a virtual SCSI and network adapters and also support secure boot -- the preferred way to ensure only signed kernels are permitted to boot within the VM."
http://searchwindowsserver.tec ... arget.com&src=5266910

While it's focussed on running virtual 8.1 on Server 2012 it's pretty clear you can run these gen 2 virtual machines on Hyper-V in 64 bit 8.1. Hope this helps.
That sounds cool. That means if I run Server 2012 with Hyper-V and install Windows 8.1 on it, it runs pretty much directly on my hardware?


Anyway, it doesn't really change my situation though, does it? When I get home I'll run CPU-Z and see if my clock speed is actually lowered. If that's the case I'm happy. I've read that Server 2012 also has the same idle bug, so that wouldn't help either.
Just got home and tested this out with CPU-Z.

It seems that it is still clocking back and that there's some feature/bug in task manager that shows the full speed...

CPU-Z:


Task manager:
What it means is that Hyper-V on win 8.1 is different to previous versions. Win 8.1 and Server 2012 are running the gen 2 version.
Seems to handle stuff differently to the earlier model so that could be part of the issue. M$ and new tech after all.

It means that any info re Server 2012 'should' be relevant to your setup.
http://blogs.technet.com/b/can ... 00_v+2012+r2/default.aspx

Here's a run down on it showing the setup changes in 8.1.
http://intunedin.net/2013/10/g ... s-8-1-hyper-v-part-1-981/

Idle throttling with Hyper-V
(9 posts, started )
FGED GREDG RDFGDR GSFDG