Architectural virtualization extensions: A systems perspective

Abstract Owing to the increase in demand for virtualization in recent years, both Intel and AMD have added virtualization extensions to the Intel 64 architecture. These architectural extensions provide hardware support aimed at improving the performance of system virtual machines (VM). Although extensive studies on various aspects of system VMs, in particular Xen but also KVM, have been reported in the literature, there has been no work specifically focused on Intel’s virtualization extensions. The survey presented here is a comprehensive study of the Intel 64 architecture’s architectural virtualization extensions and their use in system virtual machines, as exemplified by KVM. We describe a novel evaluation environment used in this study. Using this environment, we show and explain the correlation between architectural limitations of the hardware extensions and the performance of virtualization. The present review also describes the implementation and performance of a Virtio block device.

[1]  Kevin P. Lawton Bochs: A Portable PC Emulator for Unix/X , 1996 .

[2]  Sammy Lin Towards virtual machine integrity using introspection , 2009 .

[3]  Wenzhi Chen,et al.  SmartVisor: towards an efficient and compatible virtualization platform for embedded system , 2009, IIES '09.

[4]  Thomas W. Christian,et al.  vBlades: Optimized Paravirtualization for the Itanium Processor Family , 2004, Virtual Machine Research and Technology Symposium.

[5]  Jian Wang,et al.  XenLoop: a transparent high performance inter-vm network loopback , 2008, HPDC.

[6]  Ulrich Drepper,et al.  The Cost of Virtualization , 2008, ACM Queue.

[7]  Ian T. Foster,et al.  The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Int. J. High Perform. Comput. Appl..

[8]  Borja Sotomayor,et al.  Resource Leasing and the Art of Suspending Virtual Machines , 2009, 2009 11th IEEE International Conference on High Performance Computing and Communications.

[9]  Hong Ong,et al.  An Extensible I/O Performance Analysis Framework for Distributed Environments , 2009, Euro-Par.

[10]  Rusty Russell,et al.  virtio: towards a de-facto standard for virtual I/O devices , 2008, OPSR.

[11]  Cheol-Ho Hong,et al.  MobiVMM: a virtual machine monitor for mobile phones , 2008, MobiVirt '08.

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

[13]  Calton Pu,et al.  Fast networking with socket-outsourcing in hosted virtual machine environments , 2009, SAC '09.

[14]  Gil Neiger,et al.  IntelŴVirtualization Technology: Hardware Support for Efficient Processor Virtualization , 2006 .

[15]  Karsten Schwan,et al.  High performance and scalable I/O virtualization via self-virtualized devices , 2007, HPDC '07.

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

[17]  S. Gribble,et al.  Scale and performance in the Denali isolation kernel , 2002, OSDI '02.

[18]  Dhabaleswar K. Panda,et al.  High Performance VMM-Bypass I/O in Virtual Machines , 2006, USENIX Annual Technical Conference, General Track.

[19]  Yaozu Dong,et al.  Live Migration with Pass-through Device for Linux VM , 2008 .

[20]  Raymond Namyst,et al.  Efficient Shared Memory Message Passing for Inter-VM Communications , 2008, Euro-Par Workshops.

[21]  Alan L. Cox,et al.  Scheduling I/O in virtual machine monitors , 2008, VEE '08.

[22]  Michael Gschwind,et al.  Dynamic Binary Translation and Optimization , 2001, IEEE Trans. Computers.

[23]  Tal Garfinkel,et al.  Virtual machine monitors: current technology and future trends , 2005, Computer.

[24]  Sebastien Goasguen,et al.  A study of a KVM-based cluster for grid computing , 2009, ACM-SE 47.

[25]  Muli Ben-Yehuda,et al.  Direct Device Assignment for Untrusted Fully-Virtualized Virtual Machines , 2008 .

[26]  Derek McAuley,et al.  Standardized But Flexible I/O for Self-Virtualizing Devices , 2008, Workshop on I/O Virtualization.

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

[28]  Jose Renato Santos,et al.  Bridging the Gap between Software and Hardware Techniques for I/O Virtualization , 2008, USENIX Annual Technical Conference.

[29]  Xiaomin Zhu,et al.  From virtualized resources to virtual computing grids: the In-VIGO system , 2005, Future Gener. Comput. Syst..

[30]  Mary Lou Soffa,et al.  Retargetable and reconfigurable software dynamic translation , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[31]  Muli Ben-Yehuda,et al.  Quantitative Comparison of Xen and KVM , 2008 .

[32]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX ATC, FREENIX Track.

[33]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.

[34]  Nicholas Nethercote,et al.  Valgrind: a framework for heavyweight dynamic binary instrumentation , 2007, PLDI '07.

[35]  Fabienne Anhalt,et al.  Linux-based virtualization for HPC clusters , 2009 .

[36]  Mendel Rosenblum,et al.  The Reincarnation of Virtual Machines , 2004, ACM Queue.

[37]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[38]  C. Waldspurger Memory resource management in VMware ESX server , 2002, OSDI '02.

[39]  Christian Engelmann,et al.  Proactive fault tolerance for HPC with Xen virtualization , 2007, ICS '07.

[40]  Jiuxing Liu,et al.  Virtualization polling engine (VPE): using dedicated CPU cores to accelerate I/O virtualization , 2009, ICS.

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

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

[43]  D. Niehaus Hrtimers and Beyond : Transforming the Linux Time Subsystems , 2009 .

[44]  Calton Pu,et al.  Improving Virtualized Windows Network Performance by Delegating Network Processing , 2009, 2009 Eighth IEEE International Symposium on Network Computing and Applications.

[45]  Mark D. Hill,et al.  Virtual hierarchies to support server consolidation , 2007, ISCA '07.

[46]  Jimi Xenidis,et al.  Utilizing IOMMUs for Virtualization in Linux and Xen Muli , 2006 .

[47]  Yu Li,et al.  Dynamic memory paravirtualization transparent to guest OS , 2010, Science in China Series F: Information Sciences.

[48]  Daniel Pierre Bovet,et al.  Understanding the Linux Kernel , 2000 .

[49]  Richard Wolski,et al.  The Eucalyptus Open-Source Cloud-Computing System , 2009, 2009 9th IEEE/ACM International Symposium on Cluster Computing and the Grid.

[50]  Wenke Lee,et al.  Ether: malware analysis via hardware virtualization extensions , 2008, CCS.

[51]  Richard Wolski,et al.  The impact of paravirtualized memory hierarchy on linear algebra computational kernels and software , 2008, HPDC '08.

[52]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[53]  Orran Krieger,et al.  Virtualization for high-performance computing , 2006, OPSR.

[54]  Roger Sessions Fuzzy Boundaries: Objects, Components, and Web Services , 2004, ACM Queue.

[55]  James E. Smith,et al.  Virtual machines - versatile platforms for systems and processes , 2005 .

[56]  Werner Vogels,et al.  Beyond Server Consolidation , 2008, ACM Queue.