Second Level Address Translation
Second Level Address Translation (SLAT) is a hardware-assisted virtualization technology. Intel's brand of SLAT, known as Extended Page Table (EPT) was introduced in the Nehalem microarchitecture found in certain Core i7, Core i5, and Core i3 processors. AMD, supports SLAT through their Rapid Virtualization Indexing (RVI) technology since the introduction of their third generation Opteron processors (code name Barcelona).
|This section requires expansion with: how SLAT actually works, which is fairly different from shadow page tables, even at a logical level. (February 2014)|
Modern processors use the concepts of physical memory and virtual memory – running processes use virtual addresses and when an instruction requests access to memory, the processor translates the virtual address to a physical address using page table or TLB. When running a virtual system, it has allocated virtual memory of the host system that serves as a physical memory for the guest system, and the same process of address translation goes on also within the guest system. This increases the cost of memory access since the address translation needs to be performed twice – once inside the guest system (using software-emulated shadow page table), and once inside the host system (using hardware page table).
In order to make this translation more efficient, processor vendors implemented technologies commonly called SLAT, which allow for direct translation of guest virtual addresses to host physical addresses without the need of shadow page table.
Extended Page Tables
Extended Page Tables (EPT) is an Intel second generation x86 virtualization technology for the memory management unit (MMU). EPT support is found in Intel's Core i3, Core i5 and Core i7 CPUs, among others.
According to a VMware evaluation paper: "EPT provides performance gains of up to 48% for MMU-intensive benchmarks and up to 600% for MMU-intensive microbenchmarks", although it can actually be slower than a software implementation in some corner cases.
Rapid Virtualization Indexing
Rapid Virtualization Indexing (RVI), known as Nested Page Tables during its development, is an AMD second generation hardware-assisted virtualization technology for the processor memory management unit (MMU).
A VMware research paper found that RVI offers up to 42% gains in performance compared with software-only (shadow page table) implementation. Tests conducted by Red Hat showed a doubling in performance for OLTP benchmarks.
Support in software
The following hypervisors support SLAT:
- Hyper-V for Windows Server 2008 R2, Windows 8 and later. The Windows 8 Hyper-V actually requires SLAT.
- KVM 2.6.26 and later
- VirtualBox 2.0.0 and later
- VMware ESX 3.5 and later
- Xen 3.2.0 and later
- bhyve both supports and requires EPT
Note that some of the above hypervisors actually require EPT in order to work at all (not just faster) as they do not implement a software shadow page table; the list is not fully updated to reflect that.
- AMD-V (codename Pacifica) for the 1st generation AMD hardware virtualization support
- Page table
- "Intel® Virtualization Technology List". Ark.intel.com. Retrieved 2014-02-17.
- "Intel added unrestricted guest mode on Westmere micro-architecture and later Intel CPUs, it uses EPT to translate guest physical address access to host physical address. With this mode, VMEnter without enable paging is allowed."
- "If the “unrestricted guest” VM-execution control is 1, the “enable EPT” VM-execution control must also be 1"
- Performance Evaluation of Intel EPT Hardware Assist
- "Rapid Virtualization Indexing with Windows Server 2008 R2 Hyper-V | The Virtualization Blog". Blogs.amd.com. 2009-03-23. Retrieved 2010-05-16.
- "AMD-V Nested Paging". July 2008. Retrieved 2013-12-11.
- "Performance Evaluation of AMD RVI Hardware Assist" (PDF). Retrieved 2010-05-16.
- "Red Hat Magazine | Red Hat Enterprise Linux 5.1 utilizes nested paging on AMD Barcelona Processor to improve performance of virtualized guests". Magazine.redhat.com. 2007-11-20. Retrieved 2010-05-16.
- "VMware engineer praises AMD's Nested Page Tables". Searchservervirtualization.techtarget.com. 2008-07-21. Retrieved 2010-05-16.
- "AMD-V Rapid Virtualization Indexing and Windows Server 2008 R2 Hyper-V Second Level Address Translation". Doing IT Virtual. Retrieved 2010-05-16.
- Bott, Ed (2011-12-08). "Does your PC have what it takes to run Windows 8's Hyper-V?". ZDNet. Retrieved 2014-02-17.
- AMD Processors with Rapid Virtualization Indexing Required to Run Hyper-V in Windows 8
- "Kernel Newbies: Linux 2 6 26".
- "Changelog for VirtualBox 2.0".
- "Benchmarks: Xen 3.2.0 on AMD Quad-Core Opteron with RVI". 2008-06-15. Retrieved 2011-05-13.
- Implementation of a BIOS emulation support for BHyVe: A BSD Hypervisor