VMware has supported Intel and AMD's virtualization assist since 2006. Long before then we were using an all-software approach that we call binary translation (BT). With the benefit of years of development and optimization, BT outperformed the early versions of hardware assist. But as hardware assist evolved the use of these new features became more attractive.
Because our support for hardware assist is rich and BT is heavily optimized, the monitor can benefit from using either technology in different situations. The following tables detail the defaults in ESX 4.0, which can be changed through VM settings if desired.
VM Configuration | Core-i7 (Nehalem) | 45nm Core2 with VT-x | 65nm Core2 with VT-x and FlexPriority | 65nm Core2 with VT-x and No FlexPriority | P4 with VT-x | EM64T without VT-x | No EM64T |
FT enabled | VT-x + SPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | Not runnable | Not runnable | Not runnable |
64-bit guests | VT-x + EPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | Not runnable | Not runnable |
VMI enabled | BT + SPT | BT + SPT | BT + SPT | BT + SPT | BT + SPT | BT + SPT | BT + SPT |
OpenServer, UnixWare, OS/2 | VT-x + EPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | BT + SPT | BT + SPT |
32-bit Linux and 32-bit FreeBSD | VT-x + EPT | VT-x + SPT | BT + SPT (*) | BT + SPT (*) | BT + SPT (*) | BT + SPT | BT + SPT |
32-bit Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 | VT-x + EPT | VT-x + SPT | VT-x + SPT | BT + SPT (*) | BT + SPT (*) | BT + SPT | BT + SPT |
Windows 2000, Windows NT, DOS, Windows 95, Windows 98, Netware, 32-bit Solaris | BT + SPT (*) | BT + SPT (*) | BT + SPT (*) | BT + SPT (*) | BT + SPT (*) | BT + SPT | BT + SPT |
All other 32-bit guests | VT-x + EPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | VT-x + SPT | BT + SPT | BT + SPT |
(*) When we use BT on an Intel system with VT-x capability, we dynamically switch to VT-x if the guest enters long mode.
Configuration | Barcelona, Phenom, and Newer | AMD64 pre-Barcelona | No AMD64 |
FT enabled | AMD-V + SPT | Not runnable | Not runnable |
64-bit guests | AMD-V + RVI | BT + SPT | Not runnable |
VMI enabled | BT + SPT | BT + SPT | BT + SPT |
OpenServer, UnixWare, OS/2 | AMD-V + RVI | BT + SPT | BT + SPT |
32-bit Linux and 32-bit FreeBSD | AMD-V + RVI | BT + SPT | BT + SPT |
32-bit Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 | AMD-V + RVI | BT + SPT | BT + SPT |
Windows 2000, Windows NT, DOS, Windows 95, Windows 98, Netware, 32-bit Solaris | BT + SPT | BT + SPT | BT + SPT |
All other 32-bit guests | AMD-V + RVI | BT + SPT | BT + SPT |
VT-x: Intel's virtualization hardware assist.
EPT: Extended Page Tables. Intel's on-board, virtualization-aware memory management unit (MMU).
EM64T: Intel's 64-bit extensions to the x86 architecture.
SPT: Shadow page tables. ESX's software memory management unit (i.e., not EPT or RVI.)
BT: Binary translation. ESX's software virtualization capability (i.e., not VT or AMD-V)
AMD-V: AMD's virtualization hardware assist.
RVI: Rapid Virtualization indexing. AMD's on-board, virtualization-aware memory management unit (MMU).
Is EPT enabled at runtime if VM if VMotioned from Core 2 to Core i7 CPU on cluster with EVC enabled?
Yes. As long as the VM is configured as the source system for "automatic" then the HW monitor mode will be used and EPT will be picked up at the destination host.
Scott
More information on my communities blog and on Twitter:
Scott,
Do we have to manually select the option below or just leave it as a default to gain performance on the Windows Terminal Server VMs ?
Thanks,
On modern hardware 'Automatic' should provide you the best option automatically.
This is what you want to see:
vmx| HV Settings: virtual exec = ‘hardware'; virtual mmu = ‘hardware’
Check what mode you're getting with instructions here:
http://virtualizationeh.ca/2010/11/23/checking-vsphere-monitor-modes-and-performance-implications/