Presented by Mike Marty

Slides:



Advertisements
Similar presentations
Virtualization Dr. Michael L. Collard
Advertisements

Virtualization Technology
E Virtual Machines Lecture 3 Memory Virtualization
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
A critical assault upon “A Comparison of Software and Hardware Techniques for x86 Virtualization” Chris Smowton.
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor Fall 2014 Presented By: Probir Roy.
Virtualization for Cloud Computing
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
LINUX Virtualization Running other code under LINUX.
1 Virtualization – Part III VMware Ahmad Ibrahim.
Tanenbaum 8.3 See references
A Comparison of Software and Hardware Techniques for x86 Virtualization Keith Adams Ole Agesen Oct. 23, 2006.
CSC 660: Advanced Operating SystemsSlide #1 CSC 660: Advanced OS Virtual Machines.
Keith Adams, Ole Agesen 1st October 2009 Presented by Chwa Hoon Sung, Kang Joon Young A Comparison of Software and Hardware Techniques for x86 Virtualization.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Chapter 5. Outline (2nd part)
Virtualization Concepts Presented by: Mariano Diaz.
Virtualization Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation is licensed.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Virtualization Part 2 – VMware. Virtualization 2 CS5204 – Operating Systems VMware: binary translation Hypervisor VMM Base Functionality (e.g. scheduling)
Our work on virtualization Chen Haogang, Wang Xiaolin {hchen, Institute of Network and Information Systems School of Electrical Engineering.
CS533 Concepts of Operating Systems Jonathan Walpole.
System Virtualization 1 Learning Objective: –To understand the implementation choices and details of System Virtualization COMP
Virtualization Part 2 – VMware Hardware Support. Virtualization 2 CS 5204 – Fall, 2008 VMware: binary translation Hypervisor VMM Base Functionality (e.g.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Cloud Operating System Unit 09 Cloud OS Core Technology M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,
Virtual Memory Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University.
Midterm Meeting Pete Bohman, Adam Kunk, Erik Shaw.
Full and Para Virtualization
CSC 660: Advanced Operating SystemsSlide #1 CSC 660: Advanced OS Virtual Machines.
Lecture 26 Virtual Machine Monitors. Virtual Machines Goal: run an guest OS over an host OS Who has done this? Why might it be useful? Examples: Vmware,
Lecture 12 Virtualization Overview 1 Dec. 1, 2015 Prof. Kyu Ho Park “Understanding Full Virtualization, Paravirtualization, and Hardware Assist”, White.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Virtualization Neependra Khare
1 Virtualization "Virtualization software makes it possible to run multiple operating systems and multiple applications on the same server at the same.
CS 695 Topics in Virtualization and Cloud Computing, Autumn 2012 CS 695 Topics in Virtualization and Cloud Computing More Introduction + Processor Virtualization.
Virtualization-optimized architectures
Lecture 13: Virtual Machines
Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels
Virtualization for Cloud Computing
Introduction to Virtualization
Virtualization.
Virtual Machine Monitors
Virtualization D. J. Foreman 2009.
Virtualization Technology
Virtualization Dr. Michael L. Collard
CS352H: Computer Systems Architecture
Lecture 24 Virtual Machine Monitors
Formal Virtual Machines
Virtualization overview
Disco: Running Commodity Operating Systems on Scalable Multiprocessors
Running other code under LINUX
Group 8 Virtualization of the Cloud
OS Virtualization.
Virtualization Techniques
A Survey on Virtualization Technologies
Virtual machines benefits
Computer Security: Art and Science, 2nd Edition
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Introduction to Virtual Machines
CSE 451: Operating Systems Winter 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 412 Sieg Hall 1.
Introduction to Virtual Machines
Virtualization Dr. S. R. Ahmed.
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Hardware Virtualization
CS295: Modern Systems Virtualization
Slides from E0-253 taught by Arkaprava Basu and Vinod Ganapathy
Hypervisor A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer.
Presentation transcript:

Presented by Mike Marty A Comparison of Software and Hardware Techniques for x86 Virtualization By Keith Adams and Ole Ageson VMWare Presented by Mike Marty

The Renaissance of Virtualization 1970s: virtual machines first used 1990s: x86 becomes prominent server platform No vertical integration in x86 Lack of enterprise features in commodity OSs 1999: VMWare first product to virtualize x86 2006: AMD and Intel offer hardware support

Outline Classic Virtualization Software Virtualization Intel/AMD Hardware Virtualization Comparison and Results Discussion

Classic Virtualization Popek and Goldberg’s Criteria: Fidelity – run any software Performance – run it fairly fast Safety – VMM manages all hardware Trap-and-Emulate only real solution until recently

Trap-and-Emulate Virtualization 1. De-Privilege OS user mode apps OS kernel mode

Trap-and-Emulate Virtualization 1. De-Privilege OS apps apps user mode OS OS virtual machine monitor kernel mode

Trap-and-Emulate Virtualization 1. De-Privilege OS 2. Shadow structures and memory tracing shadow page table shadow page table apps apps user mode OS OS primary page table virtual machine monitor kernel mode

Trap-and-Emulate cont. Traps are expensive (~3000 cycles) Many traps unavoidable E.g., page faults Important enhancements “Paravirtualization” to reduce traps (e.g., Xen) Hardware VM modes (e.g., IBM s370)

Can x86 Trap and Emulate? No Classic Example: popf instruction Even with 4 execution modes! Key problem: dual-purpose instructions don’t trap Classic Example: popf instruction Same instruction behaves differently depending on execution mode User Mode: changes ALU flags Kernel Mode: changes ALU and system flags Does not generate a trap in user mode

Outline Classic Virtualization Software Virtualization Intel/AMD Hardware Virtualization Comparison and Results Discussion

Software Virtualization with VMWare Binary translation! (mostly safe, user-mode) X86 X86

VMWare’s Binary Translation On-the-fly Only need to translate OS code Makes SPEC run fast by default Most instruction sequences don’t change Instructions that do change: Indirect control flow: call/ret, jmp PC-relative addressing Privileged instructions Adaptive Translation “Innocent until proven guilty”

Performance Advantages of BT Translation sequences can be faster than native: cli vs. vpu.flags.IF := 0 Avoid privilege instruction traps Example: rdtsc Trap-and-emulate: 2030 cycles Callout-and-emulate: 1254 cycles BT emulation: 216 cycles (but TSC value is stale)

Outline Classic Virtualization Software Virtualization Intel/AMD Hardware Virtualization Comparison and Results Discussion

AMD SVM and Intel VT Extensions to x86-32 and x86-64 Allows classic trap-and-emulate! Hardware VM modes to reduce traps Details: VMCB – virtual machine control block VMX mode for running guest OSs Vmrun instruction to enter VMX mode Many instructions and events cause VMX exits Control fields in VMCB can change VMX exit behavior

Hardware VM Example: syscall VMM fills in VMCB exception table for Guest OS Sets bit in VMCB not exit on syscall exception VMM executes vmrun Application invokes syscall CPU  CPL #0, does not trap, vectors to VMCB exception table

Software BT vs. Hardware VM Binary Translation VMM: Converts traps to callouts Callouts faster than trapping Faster emulation routine VMM does not need to reconstruct state Avoids callouts entirely Hardware VMM: Preserves code density No precise exception overhead Faster system calls

Compute-bound Benchmarks Bottomline: little difference for SPEC

Mixed Benchmarks Cygwin Make is SLOW! Process-based Thread-based Who Cares? Would Hardware VM do better for multithreaded database?

Costs of Operations PGFAULT– “This is due mostly to the shorter path whereby the software VMM receives control” PTEMOD– adaptive discovery/translation

Nanobenchmarks

VMWare Nanobenchmarks syscall Native/Hardware VMM: same Software VMM: +2000 cycles in Native: 3209 cycles Hardware VMM: 15826 cycles Software VMM: 15x faster? call/ret Native/Hardware VMM: 11 cycles Software VMM: 51 cycles

Opportunities Faster Microarchitecture implementations Intel Core Duo already much faster than P4 Hardware VMM algorithms Software/Hardware Hybrid VMM Hardware MMU Virtualize DMA

Catalysts for Discussion Is BT really faster for things that matter? Process-based Apache on Linux? Who configures a system to constantly page? VMWare is done, why bother with Hardware VM support? Simplicity of VMM w/ Hardware support New applications Will next-gen hardware make binary translation unnecessary?