Hardware Support for Efficient Virtualization

Virtual machines have been used since the 1960’s in creative ways. From multiplexing expensive mainframes to providing backwards compatibility for customers migrating to new har dware, virtualization has allowed users to maximize their us age of limited hardware resources. Despite virtual machines fall ing by the way-side in the 1980’s with the rise of the minicomputer, we are now seeing a revival of virtualization with virtual mach ines being used for security, isolation, and testing among other s. With so many creative uses for virtualization, ensuring hig h performance for applications running in a virtual machine b ecomes critical. In this paper, we survey current research to wards this end, focusing on the hardware support which enables efficient virtualization. Both Intel and AMD have inco rporated explicit support for virtualization into their CPU designs. While this can simplify the design of a stand alone vir tual machine monitor (VMM), techniques such as paravirtualization and hosted VMM’s are still quite effective in supporting vir tual machines. We compare and contrast current approaches to efficient virtualization, drawing parallels to techniques developed by IBM over thirty years ago. In addition to virtualizing the CPU, w e also examine techniques focused on virtualizing I/O and the memory management unit (MMU). Where relevant, we identify shortcomings in current research and provide our own though ts on the future direction of the virtualization field.

[1]  Damian L. Osisek,et al.  ESA/390 Interpretive-Execution Architecture, Foundation for VM/ESA , 1991, IBM Syst. J..

[2]  Samuel T. King,et al.  Debugging Operating Systems with Time-Traveling Virtual Machines (Awarded General Track Best Paper Award!) , 2005, USENIX Annual Technical Conference, General Track.

[3]  Cynthia E. Irvine,et al.  Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor , 2000, USENIX Security Symposium.

[4]  J.E. Smith,et al.  Achieving high performance via co-designed virtual machines , 1998, Innovative Architecture for Future Generation High-Performance Processors and Systems.

[5]  Gil Neiger,et al.  Intel virtualization technology , 2005, Computer.

[6]  Samuel T. King,et al.  ReVirt: enabling intrusion analysis through virtual-machine logging and replay , 2002, OPSR.

[7]  John Yates,et al.  FX!32 a profile-directed binary translator , 1998, IEEE Micro.

[8]  Peter H. Gum,et al.  System/370 Extended Architecture: Facilities for Virtual Machines , 1983, IBM J. Res. Dev..

[9]  Chris Eddington InfiniBridge: An InfiniBand Channel Adapter with Integrated Switch , 2002, IEEE Micro.

[10]  Robert J. Creasy,et al.  The Origin of the VM/370 Time-Sharing System , 1981, IBM J. Res. Dev..

[11]  Beng-Hong Lim,et al.  Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor , 2001, USENIX Annual Technical Conference, General Track.

[12]  Gerald J. Popek,et al.  Formal requirements for virtualizable third generation architectures , 1974, CACM.

[13]  Gil Neiger,et al.  Intel ® Virtualization Technology for Directed I/O , 2006 .

[14]  Ole Agesen,et al.  A comparison of software and hardware techniques for x86 virtualization , 2006, ASPLOS XII.