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.
Monitor Defaults with Intel Processors
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.
Monitor Defaults with AMD Processors
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 |
Legend
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).