ELI: Bare-Metal Performance for I/O Virtualization



Similar documents
ELI: Bare-Metal Performance for I/O Virtualization

Machine Virtualization: Efficient Hypervisors, Stealthy Malware

Bare-Metal Performance for x86 Virtualization

ELI: Bare-Metal Performance for I/O Virtualization

Networked I/O for Virtual Machines

Nested Virtualization

Virtualization Technologies

Virtualization. Dr. Yingwu Zhu

Virtualization. Pradipta De

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

Virtualization Technology. Zhiming Shen

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

The Turtles Project: Design and Implementation of Nested Virtualization

Full and Para Virtualization

The Xen of Virtualization

CS5460: Operating Systems. Lecture: Virtualization 2. Anton Burtsev March, 2013

Distributed Systems. Virtualization. Paul Krzyzanowski

Arwed Tschoeke, Systems Architect IBM Systems and Technology Group

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com

Advanced Computer Networks. Network I/O Virtualization

Rise of RaaS: the Resource-as-a-Service Cloud

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

Virtual Machines. COMP 3361: Operating Systems I Winter

Cloud Operating Systems for Servers

COS 318: Operating Systems. Virtual Machine Monitors

BHyVe. BSD Hypervisor. Neel Natu Peter Grehan

Xen and the Art of. Virtualization. Ian Pratt

kvm: Kernel-based Virtual Machine for Linux

Virtualization in the ARMv7 Architecture Lecture for the Embedded Systems Course CSD, University of Crete (May 20, 2014)

Chapter 5 Cloud Resource Virtualization

NoHype: Virtualized Cloud Infrastructure without the Virtualization

Cloud^H^H^H^H^H Virtualization Technology. Andrew Jones May 2011

Hybrid Virtualization The Next Generation of XenLinux

Models For Modeling and Measuring the Performance of a Xen Virtual Server

How To Make A Minecraft Iommus Work On A Linux Kernel (Virtual) With A Virtual Machine (Virtual Machine) And A Powerpoint (Virtual Powerpoint) (Virtual Memory) (Iommu) (Vm) (

Intel Virtualization Technology and Extensions

Nested Virtualization

Virtualizing Performance-Critical Database Applications in VMware vsphere VMware vsphere 4.0 with ESX 4.0

Cloud Computing #6 - Virtualization

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?

COS 318: Operating Systems

Virtualization. Jia Rao Assistant Professor in CS

Introduction to Virtualization & KVM

Architecture of the Kernel-based Virtual Machine (KVM)

Database Virtualization

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

Attacking Hypervisors via Firmware and Hardware

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Virtualization. Types of Interfaces

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

INFO5010 Advanced Topics in IT: Cloud Computing

Virtual Machines Fact Sheet

Virtual Ethernet Bridging

The Microsoft Windows Hypervisor High Level Architecture

The Price of Safety: Evaluating IOMMU Performance Preliminary Results

Virtualization in Linux KVM + QEMU

Virtual Machines. Virtualization

Bridging the Gap between Software and Hardware Techniques for I/O Virtualization

Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build

How To Understand The Power Of A Virtual Machine Monitor (Vm) In A Linux Computer System (Or A Virtualized Computer)

HRG Assessment: Stratus everrun Enterprise

Virtualization. Jukka K. Nurminen

RDMA Performance in Virtual Machines using QDR InfiniBand on VMware vsphere 5 R E S E A R C H N O T E

Scaling in a Hypervisor Environment

OSes. Arvind Seshadri Mark Luk Ning Qu Adrian Perrig SOSP2007. CyLab of CMU. SecVisor: A Tiny Hypervisor to Provide

Masters Project Proposal

Introduction to Virtual Machines

System Virtual Machines

Performance tuning Xen

Bright Idea: GE s Storage Performance Best Practices Brian W. Walker

Virtual Machines. Virtual Machine (VM) Examples of Virtual Systems. Types of Virtual Machine

Virtual Switching Without a Hypervisor for a More Secure Cloud

Using Linux as Hypervisor with KVM

High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs.

High Performance VMM-Bypass I/O in Virtual Machines

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

Nested Virtualization

Enabling Intel Virtualization Technology Features and Benefits

Evaluation Methodology of Converged Cloud Environments

KVM/ARM: Experiences Building the Linux ARM Hypervisor

White Paper. Freescale s Embedded Hypervisor for QorIQ P4 Series Communications Platform

The Incremental Advantage:

KVM KERNEL BASED VIRTUAL MACHINE

Oracle Database Scalability in VMware ESX VMware ESX 3.5

RCL: Software Prototype

Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...

Intel Virtualization Technology (VT) in Converged Application Platforms

DPDK Summit 2014 DPDK in a Virtual World

Brian Walters VMware Virtual Platform. Linux J. 1999, 63es, Article 6 (July 1999).

VIRTUALIZATION 101. Brainstorm Conference 2013 PRESENTER INTRODUCTIONS

Securing your Virtual Datacenter. Part 1: Preventing, Mitigating Privilege Escalation

Top 5 Reasons to choose Microsoft Windows Server 2008 R2 SP1 Hyper-V over VMware vsphere 5

IOS110. Virtualization 5/27/2014 1

Transcription:

ELI: Bare-Metal Performance for I/O Virtualization Abel Gordon Nadav Amit Nadav Har El Muli Ben-Yehuda, Alex Landau Assaf Schuster Dan Tsafrir IBM Research Haifa Technion Israel Institute of Technology

Why (not) Virtualization? Pros Consolidation Flexibility Cloud computing Simplified management Migration. Cons Performance degradation Performance degradation Performance degradation

x86 Virtualization Performance bare-metal performance performance CPU intensive Memory intensive I/O intensive HW supports CPU virt HW supports MMU virt HW supports I/O virt ELI HW support for virtualization

The Cause of x86 I/O Virtualization Overhead bare-metal virtualization guest hypervisor (t) single core Privileged instructions trap to the hypervisor Traps cause an Exit (switch to the hypervisor context) Hypervisor emulates their behavior Hypervisor resumes the guest (switch to the guest context) I/O intensive workloads cause many exits = overhead!

Direct Device Assignment Give the guest direct access to a physical device Devices nowadays know how to self virtualize (SR-IOV) Main I/O control and data paths do not require hypervisor intervention

The Solution (?) to I/O Virtualization Overhead Device assignment is by far the best performing option, but it only achieves 60% of bare-metal performance

, Exits,, Exits,, Exits... guest Physical Injection Completion hypervisor No hypervisor intervention (?!) except for handling more than 48,000 interrupts per second! Exits due to external interrupts Exits due to interrupt completions

ELI: Exitless s for unmodified, untrusted guests (a) Baseline Physical Injection Completion guest hypervisor (b) ELI delivery Completion guest hypervisor (c) ELI delivery & completion guest hypervisor (d) bare-metal (time)

Background: x86 Handling I/O devices raise interrupts to notify the system software about incoming events CPU temporarily stops the currently executing code and jumps to a pre-specified interrupt handler IDTR IDT IDT Entry Handler for vector 1 Address IDT Entry Handler for vector 2 Limit IDT Entry Handler for vector n IDT Register Descriptor Table handlers

x86 Handling in Virtual Environments Raised by physical devices Physical interrupt Exit handler Host IDT VM Guest IDT handler Hypervisor Entry Virtual interrupt Created and injected by software Host IDT: handles physical interrupts Guest IDT: handles virtual interrupts If a physical interrupt including interrupts from assigned devices arrives while the guest is running the CPU forces an Exit!

ELI: Exitess s - Delivery ELI configures the CPU to deliver all interrupts to the guest ELI runs the guest using a shadow IDT Host interrupts are bounced back to the host in the form of exceptions without the guest being aware of it Guest IDT Assigned Shadow IDT Handler IDTR Limit Shadow IDT IDT Entry IDT Entry P=0 P=1 #NP Handler ELI Delivery VM Hypervisor Non-assigned IDT Entry IDT Entry P=0 #NP #GP Physical

ELI: Exitless s - Completion Guests write to the LAPIC EOI register Old LAPIC interface: Hypervisor traps memory accesses page granularity New LAPIC interface (x2apic), required for Exitless Completions Hypervisor traps accesses to MSRs register granularity ELI gives direct access only to the EOI register

Evaluation: Netperf Exits/sec + - 102,000 800 60% 98% Time in guest - + bare-metal performance!

Evaluation: Apache + - 91,000 1,100 Exits/sec - + 65% 97% Time in guest bare-metal performance!

Evaluation Memcached + - 123,000 1,000 Exits/sec - + 60% 100% Time in guest bare-metal performance!

Evaluation: Latency Configuration Baseline ELI delivery-only ELI Bare-metal Avg. Latency 36.14µs 30.10µs 28.51µs 27.93µs % of bare-metal 129% 108% 102% 100% Netperf UDP Request Response ELI reduces the time it takes to deliver interrupts, critical for latency-sensitive workloads.

Evaluation: Coalescing (netperf) Aggressive coalescing No coalescing

Evaluation: Computation vs. I/O Ratio (throughput)

Evaluation: Computation vs. I/O Ratio (interrupt rate)

Mitigating s Overhead - Related Work Polling Hybrid Coalescing (1)ELI is complementary to these approaches. Removes the virtualization overhead caused by the costly exits and entries during interrupt handling. (2)ELI allows the guest to choose the desired method and achieve bare-metal performance in any-case.

Coming Soon. Reduce frequency of exits caused by para-virtual I/O devices Reduce frequency of exits caused by non-assigned interrupts Reduce exits required to inject a virtual interrupt Improve performance of SMP workloads with high Inter-processor interrupt (IPI) rate Improve performance of Nested Virtualization

Conclusions High virtualization performance requires the CPU to spend most of the time running the guest (useful work) and not the host (handling exits=overhead) x86 virtualization requires host involvement (exits!) to handle interrupts (critical path for I/O workloads) ELI lets the guest handle interrupts directly (no exits!) and securely, making it possible for untrusted and unmodified guests reach near bare-metal performance

Questions?