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.

About the Author

Mark Achtemichuk

Mark Achtemichuk currently works as a Staff Engineer within VMware’s R&D Operations and Central Services Performance team, focusing on education, benchmarking, collaterals and performance architectures.  He has also held various performance focused field, specialist and technical marketing positions within VMware over the last 7 years.  Mark is recognized as an industry expert and holds a VMware Certified Design Expert (VCDX#50) certification, one of less than 250 worldwide. He has worked on engagements with Fortune 50 companies, served as technical editor for many books and publications and is a sought after speaker at numerous industry events.  Mark is a blogger and has been recognized as a VMware vExpert from 2013 to 2016.  He is active on Twitter at @vmMarkA where he shares his knowledge of performance with the virtualization community. His experience and expertise from infrastructure to application helps customers ensure that performance is no longer a barrier, perceived or real, to virtualizing and operating an organization's software defined assets.