Windows 8 Client Hyper-V – Why SLAT?

Posted on November 8, 2012

2



A question getting asked within the Microsoft Developer community is looking for clarity as to why the server and workstation (Windows 8) system requirements to run Microsoft’s virtualisation environment, Hyper-V, differ.

With the release of Windows 8 developers and enthusiasts now have at their disposal a REAL virtualisation platform built into the Workstation Operating System.

Windows 8 Pro and Enterprise comes with Microsoft Hyper-V server platform services, called Client Hyper-V. Client Hyper-V provides the same virtualization capabilities as Hyper-V in Windows Server 2012.

This is not designed to run server grade services it is meant for testing, development etc. Now developers can work in exactly the same environment and with the same tools as the Live, reducing testing and variable risks in moving to live.

There are some features that are not present in Client Hyper-V that are in the server:

  • Systems Centre Virtual Machine Manager integration.
  • Remote FX capability to virtualize GPUs (software GPU in RDP 8)
  • Live VM migration
  • Hyper-V Replica
  • SR-IOV networking
  • Synthetic fibre channel.

The one big difference though in requirements between Server and Client Hyper-V is the need for a feature to be present in your CPU called Second Level Address Translation (SLAT). SLAT leverages AMD-V Rapid Virtualization Indexing (RVI) and Intel VT Extended Page Tables (NPT) technology to allow users to run Virtual instances of operating systems on their PC as if they were any other desktop application. A PC within a PC for want of a better description.

So how do you check if your PC has SLAT? You head over to http://technet.microsoft.com/en-us/sysinternals/cc835722 and grab a copy of ‘Coreinfo‘ by Mark Russinovich. Details of how to use this are at the same URL but in simple terms in a command prompt session you run ‘coreinfo.exe –v’. This will return a short report:

  • For an Intel processor if it supports SLAT it will have an asterix (*) in the EPT row.
  • For an AMD processor if it supports SLAT it will have an asterix (*) in the NPT row.

If you get a ‘-‘ dash in either the in the EPT or NPT rows then your out of luck, your PC cannot run Windows 8 Hyper-V. There are other Virtualisation products you can buy that can replace the Hyper-V aspects of this Guide but that is beyond the current scope.

The main issue here is the requirement for SLAT on the workstation implementation. So Client Hyper-V will not install without EPT or NPT on Windows 8. Server Hyper-V does not have that requirement. Server Hyper-V will take advantage of SLAT if it is present and that will improve performance but is in less important

The reason for this difference is frustrating for those without a CPU supporting SLAT, but quiet practical when understood.

The core issues here is the end use case scenarios for Server versus a Workstation environment.

SLAT helps preserve the smooth operational end user experience of a Workstation use case versus that of a Server. This means ensuring the foreground application experience is maintained smoothly on the workstation, where as the server the priority is background services. In real terms this means no jitter in the processing of foreground applications ie: Visual Studio.

A Server on the other hand is more focused on maximising resource utilisation for its hosted VM’s. On client machine most users will operate in the root partition and without the SLAT capability TLB flushes that happen underneath that will cause jitter. Jitter is the stalling effect that can be experienced when foreground applications appear to pause momentarily as the system prioritises and assigns resources to background ‘hidden’ services, starving the foreground application in the process. This is unacceptable on a workstation hence the requirement for SLAT.

The result is when you turn on Hyper-V on the workstation you will hardly know it is turned on. Obviously assuming that not all resources are allocated as dedicated to Virtual machines (VM’s).

The SLAT requirement could perhaps have been made an option which would have breathed life into older but quiet capable platforms, but Microsoft has clearly placed a high value on the new user experience for Windows 8 and that is respected.