Understanding Intel® Virtualization Technology (VT)
Narendar B. Sahgal Director, Initiative Planning
Digital Enterprise Group Intel Corporation
Dion Rodgers Sr. Principal Engineer
Session Outline
Virtualization
Capabilities and usage models
Intel® Virtualization Technology (VT)
Challenges of IA CPU virtualization today VT eliminates challenges by design VT-x technical overview
VT Roadmap Call to Action
Virtual Machine Monitors (VMMs)
VM0
App0
VM1
App1
VMn
Appn
Virtual Machines (VMs)
Guest OS0
Guest OS1
...
Guest OSn
Virtual Machine Monitor (VMM)
Platform HW
Memory Processor/CS I/O Devices
VMM is a layer of system software
Enables multiple VMs to share platform hardware Allows Apps to run without modifications
Virtualization Capabilities
Workload Isolation
App1 OS App2 App1 OS App2 OS
Workload Consolidation
App1
OS1
App2
OS2
App1
OS1
App2
OS2
HW
VMM HW
HW 1
HW 2
VMM HW
Workload Migration
App OS App
Workload Embedding
App App
OS
OS1
OS2
VMM HW 1
VMM HW 2
VMM HW 1
VMM HW 2
VMM HW
Virtualization has powerful capabilities
Virtualization Usage Models
Legacy SW Support Training/QA Activity Partitioning Manageability …
Server Consolidation Failover infrastructure Flexible Datacenter Manageability …
Consolidation Consolidation Isolation Isolation Migration Embedding
CLIENT
SERVER
Consolidation
Migration
Migration
Isolation Migration Embedding
Virtualization has a broad range of usages
What is Intel® Virtualization Technology ?
Formerly known by the codenames Vanderpool* & Silvervale*
VT is a set of hardware enhancements to Intel server and client platforms VT is designed to simplify virtualization software Virtualization brings new end user value and new differentiation opportunities VT-x and VT-i are the first in the VT series of Intel processor and chipset innovations
VT-x refers to IA-32 CPU virtualization enhancements VT-i refers to IPF CPU virtualization enhancements
"We are on record as saying that VT is the most significant change to PC architecture this decade"
Martin Reynolds, Gartner Senior Analyst – eWeek September 9, 2004
Challenges of Running a VMM
OS and Apps in a VM don't know that the VMM exists or that they share CPU resources with other VMs
VM0
App App
VM1 ...
App App App
...
App
VMM should isolate Guest SW stacks from one another
VMM should run protected from all Guest software
Guest OS0
...
VM Monitor
Guest OS1
Platform Hardware
VMM should present a virtual platform interface to Guest SW
SW Solution: Guest Ring Deprivileging
Run Guest OS above Ring-0 and have privileged instructions generate faults...
Run VMM in Ring-0 as a collection of fault handlers
VM0
App App
VM1 ...
App App App
...
App
Guest OS0
...
VM Monitor
Guest OS1
Top IA Virtualization Holes : • Ring Aliasing • Non-trapping instructions • Excessive Faulting • Interrupt Virtualization Issues • CPU state context switching • Addr Space Compression
Platform Hardware
Complex Software Techniques : • Source guest OS Modifications • Binary guest OS Modifications
Virtualization of current IA CPUs requires complex software workarounds
Intel® Virtualization Technology
VM0
App App
VM1 ...
App App App
Guest SW runs deprivileged in a new operating mode:
...
App
Guest OS0
...
VM Monitor
Guest OS1
• Apps run deprivileged in ring 3 • OS runs deprivileged in ring 0 • VMM runs in new mode with full privilege
Platform Hardware
VMM preempts execution of Guest SW via new HW-based transition mechanism
By design, VT eliminates virtualization holes and the need for complex software workarounds
VT-x Overview
Operating modes Guest SW VMM Transitions Virtual-machine control structure Principal causes of VM Exits Benefits
Operating Modes
VMX root operation:
Fully privileged, intended for VM monitor
VMX non-root operation:
Not fully privileged, intended for guest software Reduces Guest SW privilege w/o relying on rings Solution to Ring Aliasing and Ring Compression
VM Entry and VM Exit
VM Entry
Transition from VMM to Guest Enters VMX non-root operation Loads Guest state and Exit criteria from VMCS VMLAUNCH instruction used on initial entry VMRESUME instruction used on subsequent entries
VM Exit
VMEXIT instruction used on transition from Guest to VMM Enters VMX root operation VM0 VM1 Saves Guest state in VMCS ... Loads VMM state from VMCS ...
App App App App
App
...
App
Guest OS0 VM Exit VM Entry
Guest OS1 VM Monitor
Physical Host Hardware
VT-x Operations
VM 1 VM 2 VM n
VMX Non-root Operation
VM Exit
Ring 3
Ring 0
Ring 3
Ring 0
...
Ring 3
Ring 0
VMCS 1
VMCS 2
VMCS n
VMX IA-32 Root Operation
Ring 3
VMRESUME VMLAUNCH VMXON Ring 0
Virtual Machine Control Structure (VMCS)
VMCSs are Control Structures in Memory
Only one VMCS active per virtual processor at any given time
VMCS Payload:
VM execution, VM exit, and VM entry controls Guest and host state VM-exit information fields
VMCS Format not defined and may vary
VMPTRLD: Establishes a pointer to a desired VMCS VMREAD/VMWRITE: New VMCS Access instructions
Principal Causes of VMEXIT
Paging state exits allow page-table control
CR3 accesses, INVLPG cause exits Selectively exit on page faults CR0/CR4 controls allow exiting on changes to selected bits
State-based exits allow function virtualization
CPUID, RDMSR, WRMSR, RDPMC, RDTSC, MOV DRx
Selective exception and I/O exiting reduce unnecessary exits
32-entry exception bitmap, I/O-port access bitmap
Controls provided for asynchronous events
Host interrupt control allows delivery to VMM even when guest blocking interrupts
Detection of guest inactivity to support VM scheduling
HLT, MWAIT, PAUSE
Benefits: VT Helps Improve VMMs
VT Reduces guest OS dependency
Eliminates need for binary patching / translation Facilitates support for Legacy OS
VT improves robustness
Eliminates need for complex SW techniques Simpler and smaller VMMs Smaller trusted-computing base
VT improves performance
Fewer unwanted Guest VMM transitions
VT Client Roadmap
2005 Lyndon*
Intel® Pentium® 4 Processor 945G Chipset HT, XD, EM64T, EIST, Intel AMT, VT
2006 Averill*
Intel Pentium 4 Processor & DC Broadwater Chipset 2005 features plus Intel AMT2, LT
2005 Intel Centrino™ Mobile Technology
Intel Pentium M Processor Intel 915 Chipset Family Intel PRO Wireless Network Connection 2915ABG & 2200BG, XD, EIST
2006 Napa*
Mobile Dual Core Processor code-named “Yonah” Chipset code-named “Calistoga” Wireless LAN solution code-named “Golan” 2005 features plus VT, Intel AM
VT Server Roadmap
2005 - 2006
Millington / DP Montvale Intel® 8870, Enabled Dual Core, MT, Foxton, Pellston, VT
2 Socket
2005 - 2006
Montecito / Montvale Intel® 8870 / Enabled MT, Foxton, Pellston, VT
≥ 4 Socket
2 Socket
2006 Bensley*, Glidewell*
Dempsey Blackford & Greencreek 2005 features plus VT, IAMT, I/OAT
VT Ecosystem
Intel plans to ship VT-based platforms as follows:
Intel® Desktop and Itanium® 2 platforms in 2005 Intel® Xeon™ and Intel® Centrino™ mobile platforms in 1H ’06
VT features require support from VMM providers and a few selected infrastructure vendors. Most ISVs won’t need to do anything for VT
All major VMM providers have embraced VT Intel working with Microsoft and others to enable the software ecosystem for VT
Call to Action:
VMM vendor/developer:
Learn how to harvest VT benefits Seek new business opportunities by teaming with OEMs/ISVs
PC/Server OEM:
Learn more about virtualization usage models Identify differentiation opportunities in your markets Prepare for productization of VT
Application, Service, or Solution provider:
Consider the implications and new opportunities to your product line and market Explore new business opportunities on a virtualized platform
Additional Resources
For specs / whitepapers / web resources: www.intel.com/technology/vt For discussions on VT opportunities: fernando.martins @ intel.com
Community Resources
Windows Hardware & Driver Central (WHDC)
www.microsoft.com/whdc/default.mspx
Technical Communities
www.microsoft.com/communities/products/default.mspx
Non-Microsoft Community Sites
www.microsoft.com/communities/related/default.mspx
Microsoft Public Newsgroups
www.microsoft.com/communities/newsgroups
Technical Chats and Webcasts
www.microsoft.com/communities/chats/default.mspx www.microsoft.com/webcasts
Microsoft Blogs
www.microsoft.com/communities/blogs