posted

4 Comments

More recent versions of Microsoft operating systems contain the ability to detect if they are running virtualized or not.  This is accomplished through the checking of a CPUID hypervisor-present bit presented by the VMware virtual hardware.  Since virtual hardware 7, VMware has implemented this interface, which is required by the Microsoft SVVP program.

FACT: Did you know VMware ESX 3.5u2 was the world’s first hypervisor to be qualified under the Microsoft SVVP program?

However, as Microsoft continues to change and update its specifications, lets look at a specific behavior in which virtual machine performance can be impacted by the operating system accessing a time source inefficiently.

Background

All operating systems need access to a time source. There are various hardware implementations to enable this. See Time Keeping in VMware Virtual Machines for more detail on these implementations and how they are presented to virtualized operating systems.

The Impact

The most efficient way to do this in the virtual world today is through the RDTSC instruction, which vSphere can implement without using a VM Exit. A VM Exit can be a costly activity as virtual machine execution stops due to a transition to the hypervisor for a system related call (example on an Intel based platform).  Some Microsoft operating systems (see figure below) will not use RDTSC when running in a virtual machine unless the hypervisor meets the requirements defined in the “Requirements for Implementing the Microsoft Hypervisor Interface” which was only released on 6/13/2012.  Instead, those operating systems will default to the PM Timer or HPET, which is less efficient because their access incurs a VM Exit.  Depending on the workload and how frequently QueryPerformanceCounter (QPC) function calls are issued, which in turn depends heavily on the time source, these additional VM Exits cumulatively produce a performance impact.

tsbyver

Virtual Hardware 10

Only recently has Microsoft clarified to 3rd parties the latest requirements for implementing the Microsoft hypervisor interface and subsequently VMware has provided complete support with virtual hardware 10.

The Takeaway

vSphere 5.5 and Virtual Hardware 10 provide the most efficient, modern and performant platform for your business critical applications.